python - 包含浮点值的两个数据帧的列总和
问题描述
我有两个数据框。列名称与这些数据框相同。我想对数据帧中相同列的浮点值求和然后我可以使用
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
如何在不添加团队但添加价值的情况下编写代码。
谢谢,
泽普
解决方案
使用团队名称作为索引而不是整数索引:
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
推荐阅读
- java - org.osgi.framework.BundleException:无法解决:缺少要求:osgi.wiring.package;(osgi.wiring.package=org.json)
- php - 合并两个数组并创建新的
- javascript - 第一个 AJAX 总是在最后一个嵌套 AJAX 完成之前发生
- redux - 如何在ngrx中以简单的方式规范化来自服务器的数据
- java - Android 通过广播接收器和服务获取位置
- python - 从 Python 包中调用 Python OR-tools 函数时不起作用
- vue.js - VueJS/VueX:当 state 属性是一个数组时,从不调用 Watch
- java - RecyclerView onCreateViewHolder 位置背景颜色
- ios - 如何检索环境纹理 (MTLTexture) cubeMap 并更改为 Spherical Harmonics
- flutter - 有什么方法可以完成在应用商店连接 testflight 上处理 codemagic 构建?