首页 > 解决方案 > 我们如何用合并操作后找到的数据更新相似列的行中的列数据?

问题描述

我可以使用连接功能找到相等的列数据。但我还有其他事情要做。例如; 如果第二个文件中的“客户ID”的值等于第一个文件中的客户ID;我想将第一个文件中“客户id”列相等的行的“客户评价”列中的值保存在同一行的“客户评价”列中。

 pd.merge(first_file_data,second_file_data,left_on='CUSTOMER ID',right_on='CUSTOMER ID')

输出:

合并交易中的类似客户 ID:

第一个文件

  CUSTOMER ID  CUSTOMER SCORE  
0  3091250      Nan
1  1122522      Nan

SECOND_FİLE

  CUSTOMER ID  CUSTOMER SCORE
0  3091250      750
1  1122522      890

标签: pythonpython-3.xpandasnumpydataframe

解决方案


你可以使用df.fillna()函数。只需在df1和上设置相同的索引df2

out = df1.set_index('CUSTOMER_ID').fillna(df2.set_index('CUSTOMER_ID')).reset_index()

print(out)

印刷:

   CUSTOMER_ID  CUSTOMER_SCORE
0      3091250           750.0
1      1122522           890.0

编辑:仅在 df1 的一行中替换 NaN:

df1['CUSTOMER_SCORE'] = df1.set_index('CUSTOMER_ID')['CUSTOMER_SCORE'].fillna(df2.set_index('CUSTOMER_ID')['CUSTOMER_SCORE']).values
print(df1)

印刷:

   CUSTOMER_ID  CUSTOMER_SCORE
0      3091250           750.0
1      1122522           890.0

推荐阅读