大熊猫如何获取当前连续数的正数?
在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
如何获得当前的连续正数?
例如,我想要这样的结果(添加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
最佳答案
尝试这个。另外,我使用的是1而不是1的随机混杂,这与您的数据不同:
x
0 1
1 -1
2 1
3 1
4 1
5 -1
6 1
7 1
8 1
9 1
10 -1
y = [] #Create a list outside a counter function
def count(df):
counter = 0
for item in df:
if item > 0:
counter += 1
y.append(counter)
else:
counter = 0
y.append(counter)
return y
count(df['x']) #run function
df['y'] = y #add column based on list
y
0 1
1 0
2 1
3 2
4 3
5 0
6 1
7 2
8 3
9 4
10 0
关于python - Pandas 如何获取当前连续数的正数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44103740/