pandas两个dataframe按照指定列相加求和.md
需求
如下图两个dataframe,按照name名称对value进行相加求和。
注意,name顺序是打乱的。
尝试
我们直接相加,但是得到了如下结果
df = df1 + df2
df = df1.add(df2)
======newdf=======
name value
0 baishanaliyun 1130
1 aliyunbaishan 1447
2 kingsoftkingsoft 151
3 totaltotal 6409
4 otherother 3681
显然不合要求
正解
网上查了下,终于找到了正确的方法,如下
df = df1.set_index('name').add(df2.set_index('name'), fill_value=0).reset_index()
或者
df = pd.concat([df1, df2]).groupby('name')['value'].sum().reset_index()
结果如下
======newdf=======
name value
0 aliyun 2264
1 baishan 313
2 kingsoft 151
3 other 3681
4 total 6409
参考资料
转载请注明:IPCPU-网络之路 » pandas两个dataframe按照指定列相加求和