df1
Location Name Value1 Value2 Value3
Harare Teddy 345 718 90
Mutare Freddy 346 800 910
Beitbridge Kudos 87 567 213
Vic Falls Tawanda 809 28 56
print(df1.info())
Branch 420
Name 420
Value1 240
Value2 212
Value3 118
条目数量的差异是不进行交易的结果。我不担心。
df2
Branch Name
Vic Falls Tawanda
Mutare Teddy
print(df2.info())
Branch 240
Name 240
我将它们合并为一个df
df3 = pd.merge(df1, df2, on='name')
print(df3.info())
Branch 240
Name 240
Value1 234
Value2 168
Value3 112
预期结果
Location Name Value1 Value2 Value3
Mutare Teddy 345 718 90
Mutare Freddy 346 800 910
Beitbridge Kudos 87 567 213
Vic Falls Tawanda 809 28 56
泰迪的位置已从其df1
值更新为df2
值。其他所有不在df2
中的名称都不会被编辑。如果两个df中的位置都相似,则保持不变
答案 0 :(得分:0)
使用www-data:www-data
的唯一想法是从apply
获取每一行,将行中的df1
与Name
中的Name
s相比较,如果存在,则替换df2
Location
最少的工作代码。
我仅将def func(row):
row2 = (df2[ df2['Name'] == row['Name'] ])
if len(row2) == 1:
row['Location'] = row2['Branch'].iloc[0]
return row
df1 = df1.apply(func, axis=1)
用于内存中的模拟器文件。
io.StringIO