以下是一个示例代码,演示如何按ID替换缺失值中的非缺失值:
import pandas as pd
# 创建示例数据
data = {'ID': [1, 2, 3, 4, 5],
'Value': [10, None, 30, None, 50]}
df = pd.DataFrame(data)
# 创建一个字典,将ID对应的非缺失值存储起来
non_missing_values = {}
# 遍历数据框中的每一行
for index, row in df.iterrows():
id = row['ID']
value = row['Value']
# 如果值不是缺失值,则将其添加到字典中
if pd.notna(value):
non_missing_values[id] = value
# 遍历数据框中的每一行
for index, row in df.iterrows():
id = row['ID']
value = row['Value']
# 如果值是缺失值,则使用字典中对应的非缺失值进行替换
if pd.isna(value):
df.loc[index, 'Value'] = non_missing_values.get(id)
# 打印替换后的数据框
print(df)
这段代码首先创建了一个包含ID和Value列的数据框,其中Value列包含一些缺失值。然后,它创建了一个字典non_missing_values,用于存储每个ID对应的非缺失值。接下来,它遍历数据框中的每一行,将非缺失值添加到字典中。最后,再次遍历数据框中的每一行,如果值是缺失值,则使用字典中对应的非缺失值进行替换。最后,打印替换后的数据框。