【问题标题】:Use recurring row values or booleans to define boundaries of pandas groupby使用循环行值或布尔值来定义 pandas groupby 的边界
【发布时间】:2021-08-25 00:37:17
【问题描述】:

我有一个 pandas DataFrame,它有一个布尔列来指示给定的行是否实际上是一个标题(相对于一个值)。我希望能够从标题行和下一个标题之前的所有后续行中制作 pandas groupby 对象。

想象一个具有以下列的 DataFrame:

pd.Series([True, False, False, False, True, False False])

我想运行一个 groupby 语句,将这个 DataFrame 分成两组:[True, False, False, False] 和 [True, False False]。我该怎么做?

【问题讨论】:

    标签: python pandas dataframe boolean pandas-groupby


    【解决方案1】:

    在 B 列上执行 cumsum,然后使用它进行分组:

    df.groupby(df['your_col'].cumsum())
    

    下面是一个例子:

    df
    
       A      B
    0  a   True
    1  b  False
    2  c  False
    3  d  False
    4  e   True
    5  f  False
    6  g  False
    
    df.groupby(df['B'].cumsum())['B'].agg(list)
    
    B
    1    [True, False, False, False]
    2           [True, False, False]
    Name: B, dtype: object
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 2018-12-13
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 2017-07-30
      相关资源
      最近更新 更多