我有一个df1有将近10万行,另一个df2只有大约10行。我需要将df1中的值替换为df2,以便在两个列值的精确匹配上仅使用30行
df1:
Daily_No Date Name Type Amount
A12 30/01/2020 Bob R 400
A14 30/01/2020 Jacob R 1000
B01 31/01/2020 John D 20
df2:
Old_Date New_Date Daily_No Type Amount Balance
30/01/2020 05/02/2020 A12 R 10000 0
30/01/2020 06/02/2020 KO11 D 200 10
10/08/2020 06/02/2020 B01 D 5 0
我想将df1列[Daily_No, **Date**, Name, Type, Amount]
分别替换为行值[Daily_No, **New_Date**, '' , Type , Amount]
中的值,换句话说,复制新的left_on=['Date', 'Daily_No'], right_on=['Old_Date', 'Daily_No']
日期和其他详细信息(余额和旧的^{U日期除外:因为余额不在df1中,df1中的日期将被新的^
由于df2中只有10行,有没有更快的方法在匹配两列时复制列值
期望输出
Daily_No Date Name Type Amount
A12 05/02/2020 Bob R 10000 <---df2 row 1 match(replaced Date with New_Date, Type, Amount)
A14 30/01/2020 Jacob R 1000 <---df2 no matches
B01 31/01/2020 John D 20 <---df2 date didn't match
IIUC,您可以使用
combine_first
,因为您不想合并另一种方法是基于共同列,ffill&;删除重复项,仅保留后面的值
相关问题 更多 >
编程相关推荐