gpt4 book ai didi

python - Pandas 如何获得当前连续正数的数量?

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:14 26 4
gpt4 key购买 nike

pandas如何获取当前连续正数的个数?

在 Python Pandas 中,我有一个包含以下格式的列和记录的数据框:

In [7]: d = {'x' : [1,-1,1,1,-1,1,1,1,-1,1,1,1,1,-1,1,1,1,1,1]}

In [8]: df = pd.DataFrame(d)

In [9]: df
Out[9]:
x
0 1
1 -1
2 1
3 1
4 -1
5 1
6 1
7 1
8 -1
9 1
10 1
11 1
12 1
13 -1
14 1
15 1
16 1
17 1
18 1

如何获取当前连续正数的个数?

比如我要result这样(加一列y代表连续的正数)

    x  y
0 1 1
1 -1 0
2 1 1
3 1 2
4 -1 0
5 1 1
6 1 2
7 1 3
8 -1 0
9 1 1
10 1 2
11 1 3
12 1 4
13 -1 0
14 1 1
15 1 2
16 1 3
17 1 4
18 1 5

最佳答案

Pandas
笨拙,但应该可以工作

p = df.y > 0
c = p.cumsum()
c - c.mask(p).ffill().fillna(0).astype(int)

关于python - Pandas 如何获得当前连续正数的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44103740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com