具有不同大小索引的 Pandas groupby(df.index)

我有一个数据框数组dfs = [df0, df1, ...]。它们中的每一个都有一个date不同大小的列(一些dates 可能在一个数据框中,但不在另一个数据框中)。

我想要做的是:

pd.concat(dfs).groupby("date", as_index=False).sum()

但是日期不再是列而是索引(dfs = [df.set_index("date") for df in dfs])。

我看到你可以传递df.indexgroupby.groupby(df.index)) 但df.index可能不包括所有日期。

我怎样才能做到这一点?

这里的目标是调用.sum()groupby所以我不依赖于使用groupby,也concat没有任何替代方法可以这样做。


哆啦的时光机
浏览 112回答 1
1回答

三国纷争

如果我能理解,也许你想要这样的东西: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()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python