我从一个时间序列创建了一个数据框(布尔值)(如果值大于x,则在特定日期为true;如果值小于x,则为false)。我试图循环进入此数据帧-每当遇到真值时,我都想更新计数器;如果为假,我想中断并打印更新的计数器。 看起来像这样,但是while循环不会中断-关于我在这里缺少什么的任何想法?预先感谢
k=0
dataa='2019-11-01'
for index in df_resz[dataa:].iterrows():
while (df_resz.loc[dataa,'bool_resz']==True):
k=k+1
else:
break
print (k)
答案 0 :(得分:0)
如果我正确理解了您的问题,那么您的目标是迭代一个数据框列并求和True
的值,直到找到False
。如果是这样:
>>> dict = {'value':[True, True, False, True]}
>>> df = pd.DataFrame(dict)
>>> df
value
0 True
1 True
2 False
3 True
>>> counter = 0
>>> for i, j in df.iterrows():
... if j.value == True:
... counter += 1
... else:
... break
...
>>> counter
2
答案 1 :(得分:0)
首先让我解释一下while循环为什么不中断。您遍历数据,在第一个为true的值处启动while循环,但是在while循环中,此值将不会更新。因此,在无限次更新k时,数据中的True值保持不变。
要解决您的问题,只需使用for循环和if语句:
myproject
- my app
- docs
- conf.py
- Makefile
- index.rst
...
- envs
- compose
- ...