python - 具有不同大小索引的 Pandas groupby(df.index)
问题描述
我有一个数据框数组dfs = [df0, df1, ...]
。它们中的每一个都有一个date
不同大小的列(一些date
s 可能在一个数据框中,但不在另一个数据框中)。
我想要做的是:
pd.concat(dfs).groupby("date", as_index=False).sum()
但是日期不再是列而是索引(dfs = [df.set_index("date") for df in dfs]
)。
我看到你可以传递df.index
到groupby
( .groupby(df.index)
) 但df.index
可能不包括所有日期。
我怎样才能做到这一点?
这里的目标是调用.sum()
,groupby
所以我不依赖于使用groupby
,也concat
没有任何替代方法可以这样做。
解决方案
如果我能理解,也许你想要这样的东西:
df = pd.concat([dfs])
df.groupby(df.index).sum()
这是一个小例子:
tmp1 = pd.DataFrame({'date':['2019-09-01','2019-09-02','2019-09-03'],'value':[1,1,1]}).set_index('date')
tmp2 = pd.DataFrame({'date':['2019-09-01','2019-09-02','2019-09-04','2019-09-05'],'value':[2,2,2,2]}).set_index('date')
df = pd.concat([tmp1,tmp2])
df.groupby(df.index).sum()
推荐阅读
- r - 唯一 ID 的生成
- selenium - 黄瓜如何在后台使用数据表
- android - 有没有办法以编程方式更改android上的通知设置?
- javascript - 如果我没有表单,如何在 html 上触发验证
- c# - Windows 内置的最小拖动距离参数是否按 DPI 缩放?
- python - Python - 字符串到列表转换函数
- hibernate - 如何在 ORM 中映射@OneToMany
- node.js - 在我导入 docusign-esign 模块时反应应用程序抛出错误
- tfs - 从备份中恢复 tfs - 附加集合的问题
- python - 脚本在写入 csv 文件时会产生一些难以理解的文本