【问题标题】:Pandas expanding count when column value changes列值更改时 Pandas 扩展计数
【发布时间】:2021-08-29 19:59:27
【问题描述】:

我有一个数据框

df = pd.DataFrame({'A': [True, True, False, False, False, False, False, True, True, True, False]})

        A
0    True
1    True
2   False
3   False
4   False
5   False
6   False
7    True
8    True
9    True
10  False

我想应用一个使用两个条件扩展的计数:每次 A 列更改值,或者当后续行为 False 时。如果后续行为 True,则计数应保持不变。期望的输出是:

        A  B
0    True  1
1    True  1
2   False  2
3   False  3
4   False  4
5   False  5
6   False  6
7    True  7
8    True  7
9    True  7
10  False  8

我已经迷上了一系列 pandas 函数,但似乎无法弄清楚。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    试试:

    第一个条件:每次A列改变值df.ne(df.shift()

    第二个条件:当后续行为假时df.eq(False)

    并在布尔掩码上执行cumsum

    >>> (df.ne(df.shift()) | df.eq(False)).cumsum()
        A
    0   1
    1   1
    2   2
    3   3
    4   4
    5   5
    6   6
    7   7
    8   7
    9   7
    10  8
    

    【讨论】:

      猜你喜欢
      • 2021-12-29
      • 2020-12-16
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      • 2014-02-17
      • 2018-06-10
      相关资源
      最近更新 更多