首页 > 解决方案 > 将多个Dataframe合二为一并填写缺失信息

问题描述

我有一个数据框,其中包含有关某些项目的信息,例如状态、受让人、优先级等……我有一堆这些数据框,每个数据框代表一年中不同周的这些项目。

我想计算每个状态在每个 DataFrame 中出现的次数。我可以使用 来执行此操作df.groupby("status").size().to_frame(),但这会在单独的 DataFrame 中一次获取一帧的信息。

如何将这些 DataFrame 组合在一起以获得一个大 DataFrame?(每一行看起来像:日期,状态,计数)此外,如果状态出现在其中一个子集中,但不在其他子集中,我需要将该状态添加到计数为 0 的所有其他子集中。这是可能的?我无法找到另一个答案或一组答案来解释这一点。

标签: pythonpandasdataframe

解决方案


不确定我是否完全理解您想要做什么,但是要结合两个框架 df 和 df2,例如,您可以使用

df2.set_index(pd.Series([i for i in range(len(df),len(df)+len(df2))]), inplace=True)
df_concat = pd.concat([df, df2])

然后获取组合数据帧的计数:

df_concat.groupby(df_concat.columns.tolist()).size().reset_index().rename(columns={0:'counts'})

推荐阅读