我在python中有2个数据帧df1和df2,它们具有相同的变量编号和名称。我想比较变量A中的值,如果值匹配,则应添加C中的相应值。
df1
A B C
5717 2 10
6417 2 12
7417 2 11
8417 2 15
df2
A B C
5717 2 12
6417 2 16
7417 2 18
8417 2 20
resulting df
A B C
5717 2 22
6417 2 28
7417 2 29
8417 2 35
答案 0 :(得分:2)
我认为您需要set_index
+ DataFrame.add
+ reset_index
:
df = df1.set_index(['A','B']).add(df2.set_index(['A','B']), fill_value=0).reset_index()
print (df)
A B C
0 5717 2 22
1 6417 2 28
2 7417 2 29
3 8417 2 35
答案 1 :(得分:0)
使用merge
df=df1.merge(df2,on=['A','B'],how='left').fillna(0)
df.assign(C=df['C_x']+df['C_y']).drop(['C_x','C_y'],1)
Out[235]:
A B C
0 5717 2 22
1 6417 2 28
2 7417 2 29
3 8417 2 35