Pandas 将一个数据帧拆分为多个数据帧

Vic*_*tor 5 pandas

我有一个 Pandas 数据框,我需要将其拆分为多个数据框。我需要拆分的数据帧数量取决于我有多少个月的数据,即我需要为每个月创建一个新的数据帧。所以 df:

MONTH   NAME INCOME
201801   A     100$
201801   B      20$
201802   A      30$
Run Code Online (Sandbox Code Playgroud)

所以我需要创建 2 个数据框。问题是我不知道我会提前多少个月的数据。我怎么做

Vai*_*ali 7

您可以使用 groupby 创建数据框字典,

df['MONTH'] = pd.to_datetime(df['MONTH'], format = '%Y%m')
dfs = dict(tuple(df.groupby(df['MONTH'].dt.month)))
dfs[1]


    MONTH   NAME    INCOME
0   2018-01-01  A   100$
1   2018-01-01  B   20$
Run Code Online (Sandbox Code Playgroud)

如果您的数据跨多个年份,则需要在分组中包含年份

dfs = dict(tuple(df.groupby([df['MONTH'].dt.year,df['MONTH'].dt.month])))
dfs[(2018, 1)]

    MONTH      NAME INCOME
0   2018-01-01  A   100$
1   2018-01-01  B   20$
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢你的 dict(tuple(groupby...)。+1 我正在把它添加到我的工具箱中。 (4认同)