df1:
df2:
我希望df1-df2的输出为
我为此感到困扰,我是熊猫的新手。请帮忙。
答案 0 :(得分:1)
将Series.sub
与Series.map
映射的第二Series
一起使用:
df1['B'] = df1['B'].sub(df1['A'].map(df2.set_index('A')['B']), fill_value=0)
print (df1)
A B
0 Asia 10.0
1 America 74.0
2 Australia 2.0
3 Africa 14.0
如果可能的话,改变第一列的顺序,将DataFrame.set_index
的两个第一列都转换为索引,然后减去:
df2 = df1.set_index('A')['B'].sub(df2.set_index('A')['B'], fill_value=0).reset_index()
print (df2)
A B
0 Africa 14.0
1 America 74.0
2 Asia 10.0
3 Australia 2.0