最新消息:

pandas两个dataframe按照指定列相加求和

IT技术 ipcpu 75浏览

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

参考资料

https://stackoverflow.com/questions/49111859/how-to-merge-two-dataframes-and-sum-the-values-of-columns

转载请注明:IPCPU-网络之路 » pandas两个dataframe按照指定列相加求和