我有两个数据帧。 列名称与那些数据框相同。 我想对数据框中相同列的浮点值求和 然后我可以使用
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
如何在不添加团队但不添加价值的情况下编写代码。
谢谢
Zep
答案 0 :(得分:1)
使用团队名称作为索引而不是整数索引:
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']
此外,如果您需要一个形状与df1
和df2
相同的数据框,并且用Value
替换为和,则可以这样做
df3 = df1.copy()
df3['Value'] = total