基于groupby的数据帧分割

2024-10-01 17:26:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想基于ZZ列拆分以下数据帧

df = 
        N0_YLDF  ZZ        MAT
    0  6.286333   2  11.669069
    1  6.317000   6  11.669069
    2  6.324889   6  11.516454
    3  6.320667   5  11.516454
    4  6.325556   5  11.516454
    5  6.359000   6  11.516454
    6  6.359000   6  11.516454
    7  6.361111   7  11.516454
    8  6.360778   7  11.516454
    9  6.361111   6  11.516454

作为输出,我需要一个新的DataFrame,其中N0_YLDF列被拆分为4,每个ZZ的唯一值对应一个新列。我该怎么办?我可以执行groupby,但不知道如何处理分组对象


Tags: 数据对象dataframedfgroupbymatzzn0
3条回答
gb = df.groupby('ZZ')    
[gb.get_group(x) for x in gb.groups]

在R中有一个称为split的数据帧方法。这适用于所有R用户:

def split(df, group):
     gb = df.groupby(group)
     return [gb.get_group(x) for x in gb.groups]

还有另一种选择,当groupby返回一个生成器时,我们可以简单地使用列表理解来检索第二个值(帧)

dfs = [x for _, x in df.groupby('ZZ')]

相关问题 更多 >

    热门问题