以下是一个示例代码,演示如何比较两个表之间的数据,并更新另一行中的值。
import pandas as pd
# 创建第一个表(源表)
df1 = pd.DataFrame({'ID': [1, 2, 3, 4],
'Value1': [10, 20, 30, 40]})
# 创建第二个表(目标表)
df2 = pd.DataFrame({'ID': [2, 3],
'Value2': [200, 300]})
# 使用merge函数将两个表合并,根据ID列进行匹配
merged_df = pd.merge(df1, df2, on='ID', how='left')
# 更新目标表中的Value1列的值
merged_df['Value1'] = merged_df.apply(lambda row: row['Value2'] if pd.notnull(row['Value2']) else row['Value1'], axis=1)
# 删除Value2列
merged_df = merged_df.drop('Value2', axis=1)
# 输出更新后的结果
print(merged_df)
输出结果为:
ID Value1
0 1 10
1 2 200
2 3 300
3 4 40
在示例代码中,我们首先创建了两个表df1和df2,然后使用merge函数将它们合并成一个新的表merged_df。我们使用left join方式,以df1为基准表,根据ID列进行匹配。合并后的表中,Value2列保存了与df1中对应行的Value1列的值。
然后,我们使用apply函数和lambda函数来更新Value1列的值。如果Value2列的值不为空(即存在匹配的行),则将Value2的值赋给Value1;否则,保持原来的Value1值不变。
最后,我们使用drop函数删除Value2列,得到最终的结果。