首页 > 解决方案 > 包含浮点值的两个数据帧的列总和

问题描述

我有两个数据框。列名称与这些数据框相同。我想对数据帧中相同列的浮点值求和然后我可以使用

df3 = df1.add(df2)

但是,我的数据框包含两列字符串。这些字符串也被添加。我如何编写代码而不是添加字符串,而是在两个数据帧中添加浮点数两个示例数据帧如下:

df1 = pd.DataFrame(dict(Team=['A','B','C','D'],Value=[1,2,3,4]),index=[0,1,2,3])
df2 = pd.DataFrame(dict(Team=['A','B','C','D'],Value=[3,1,2,4]),index=[0,1,2,3])

当我使用df3 = df1.add(df2) 它时,它还在“团队”列中添加了字符串,如下所示:

  Team  Value
0  AA     4
1  BB     3
2  CC     5
3  DD     8

如何在不添加团队但添加价值的情况下编写代码。

谢谢,

泽普

标签: pythonpandasadd

解决方案


使用团队名称作为索引而不是整数索引:

In [2]: df1 = pd.DataFrame(dict(Team=['A','B','C','D'],Value=[1,2,3,4])).set_index('Team')
   ...: df2 = pd.DataFrame(dict(Team=['A','B','C','D'],Value=[3,1,2,4])).set_index('Team')

In [3]: df1 + df2
Out[3]: 
      Value
Team       
A         4
B         3
C         5
D         8

如果您有多个其他列,只需对这些列求和:

total = df1['Value'] + df2['Value']

此外,如果您需要一个与总和相同形状的数据框df1df2替换Value为总和,您可以这样做

df3 = df1.copy()
df3['Value'] = total

推荐阅读