我有两个数据帧.对于dataframe2中的每一行,我想查看dataframe1是否已经有一行在‘name’列中具有相同的值.如果是这样的话,我想把dataframe2中行中的数据添加到dataframe1中的相应行中.列‘name’中的值不应该跨行相加.史蒂夫不应该被复制,鲍勃不应该添加新的数据.
df1 = pd.DataFrame([{'name': 'Ben', 'goals': 1, 'minutes': 90},
{'name': 'Bob', 'goals': 1, 'minutes': 64},
{'name': 'Kevin', 'goals': 1, 'minutes': 90}])
df2 = pd.DataFrame([{'name': 'Ben', 'goals': 1, 'minutes': 88},
{'name': 'Kevin', 'goals': 1, 'minutes': 3},
{'name': 'Steve', 'goals': 1, 'minutes': 13}])
最终输出应为:
name | goals | minutes |
---|---|---|
Ben | 2 | 178 |
Bob | 1 | 64 |
Kevin | 2 | 93 |
这就是我试过的
for index, row in df1.iterrows():
if df2.isin([row['name']]).any().any():
position = int(df2[df2['name'] == str(row['name'])].index.values)
df1.iloc[index, 1:] = df1.iloc[index, 1:] + df2.iloc[position, 1:]