【问题标题】:pandas group dataframe until a specific value熊猫分组数据框直到特定值
【发布时间】:2022-01-12 15:08:23
【问题描述】:

我有这个代码:

d = {'col1': [1, 2, 3, 4, 5, 6], 'col2': [7, 8, 9, 10, 11, 12], 'is_new_group': [True, False, False, True, False, False] }
pd.DataFrame(d)

我想将数据分组。 每个组将从is_new_groupTrue 的第一行的索引开始,并在新的is_new_groupTrue 时结束

在这种情况下,它应该将数据分为 2 组: 前 3 行和后 3 行:

我找到了`pd.groupby```。

根据文档,by 参数:mapping, function, label, or list of labels

但这是另一种情况。

如何根据需求对值进行分组?

【问题讨论】:

    标签: python python-3.x pandas dataframe pandas-groupby


    【解决方案1】:

    如果True 是一个新组的指示符,您可以检查它的正确位置并使用cumsum 创建您的组标签。可以用来分组。

    df.groupby(df.is_new_group.eq(True).cumsum())
    

    【讨论】:

      【解决方案2】:

      使用cumsum 检测每个新的True。在 Python 中,TrueFalse 在对其执行计算时分别转换为 10

      df.groupby(df.is_new_group.cumsum())
      
      

      会做你想做的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-16
        • 1970-01-01
        • 2020-12-14
        • 2017-10-17
        • 2019-05-03
        • 2022-01-12
        相关资源
        最近更新 更多