【发布时间】:2021-09-16 02:40:53
【问题描述】:
我需要实现一个计数器,它的计数如下面的输出所示。它检查“数据”列的过去值是否为负值。
data output
0 -1 Nan // since there are no past values for data: count=NaN
1 -2 1 //-1, so count= 1
2 4 2 //-2,-1 count=2
3 12 0 // count=0
4 -22 0 // count=0
5 -12 1 //-22 count=1
6 -7 2 // -22,-12 count=2
7 -5 3 // -7,-22,-12 count=3
8 -33 4 // -5,7,-22,-12 count=4
9 2 5 // -33,-5,7,-22,-12 count=5
10 2 1 // count=0
我的密码
import pandas as pd
import talib
import numpy as np
df=pd.DataFrame()
df["data"]=[-1,-2,4,12,-22,-12,-7,-5,-33,2,2]
print(df)
c=0
for y in [0,len(ff)-1] :
for z in [1,10]:
if (ff["data"].shift(-z)).any()<=0:c=c+1
else:c
if (ff["data"].shift(-z)).any()>0:break
count["dd"]=c
需要输出:
【问题讨论】:
-
您确定要那个输出吗?第 10 行不应该是 0 吗?
标签: python pandas dataframe for-loop counter