python - 对来自多个 DataFrame 的列求和
问题描述
我有 N 个数据框,命名为 data1,data2...等
每个数据框都有两列“X”和“Y”。每个数据帧的长度都不一样。
我需要一个包含“X”列总和的新数据框。我刚刚尝试过类似的东西:
dataframesum = pd.DataFrame(0, index=np.arange(Some_number),columns = ['X']
for i in range(N):
dataframesum.add(globals()['Data%s'%i]['X'], fill_values = 0)
但它不起作用(我不确定 Some_number 的值应该是多少)并且我收到下一个错误:
NotImplementedError: fill_value 0 not supported
解决方案
您应该使用字典来存储任意数量的变量。
因此,假设您将数据帧存储在dfs = {1: df1, 2: df2, 3: df3...}
.
然后,您可以通过以下方式连接它们pd.concat
:
df_concat = pd.concat(list(dfs.values()))
最后,您可以通过以下方式对列求和pd.DataFrame.sum
:
sums = df_concat.sum()
要利用矢量化操作,您应该避免手动for
循环。此外,使用globals()
是不好的做法,可以通过使用dict
或list
存储数据框来避免。
推荐阅读
- ios - CoreML 多输入/多分类器输出
- javascript - 无法让我的外部 JS 文件正常工作
- git - 致命的:不是 git 存储库:'
' - jquery - 显示和隐藏动作的单独缓动
- javascript - 单击按钮后如何显示来自mongodb的数据到reactjs?
- javascript - 管理 HTMLjQuery 的历史
- javascript - 使用 javascript querySelector 时出错,但使用 jquery 选择器时没有错误?
- typescript - 我可以等待异步操作循环在使用 TypeScript 的同步函数内完成吗?
- python - 将不同的熊猫数据框与系列对象进行比较
- c# - 如何在字符串中查找 3 个反斜杠?