喂我想将某些值从一个df替换为另一个

时间:2020-05-25 13:25:11

标签: python excel pandas google-sheets replace

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中的位置都相似,则保持不变

1 个答案:

答案 0 :(得分:0)

使用www-data:www-data的唯一想法是从apply获取每一行,将行中的df1Name中的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
相关问题