我有一个数据框数组dfs = [df0, df1, ...]。它们中的每一个都有一个date不同大小的列(一些dates 可能在一个数据框中,但不在另一个数据框中)。我想要做的是: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没有任何替代方法可以这样做。
1 回答
三国纷争
TA贡献1804条经验 获得超7个赞
如果我能理解,也许你想要这样的东西:
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()
添加回答
举报
0/150
提交
取消