Python-如何在pandas DataFrame中对连续值进行分组

发布于 2021-02-02 23:14:35

我在DataFrame中有一列带有值:

[1, 1, -1, 1, -1, -1]

如何将它们这样分组?

[1,1] [-1] [1] [-1, -1]
关注者
0
被浏览
87
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你可以groupby通过自定义使用Series

    df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]})
    print (df)
       a
    0  1
    1  1
    2 -1
    3  1
    4 -1
    5 -1
    
    print ((df.a != df.a.shift()).cumsum())
    0    1
    1    1
    2    2
    3    3
    4    4
    5    4
    Name: a, dtype: int32
    
    for i, g in df.groupby([(df.a != df.a.shift()).cumsum()]):
        print (i)
        print (g)
        print (g.a.tolist())
    
       a
    0  1
    1  1
    [1, 1]
    2
       a
    2 -1
    [-1]
    3
       a
    3  1
    [1]
    4
       a
    4 -1
    5 -1
    [-1, -1]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看