python的for语句条件_在满足某些条件的情况下(在Python中)循环遍...

我有一个带有两个布尔字段的数据框(如下所示).

import pandas as pd

d = [{'a1':False, 'a2':False}, {'a1':True, 'a2':False}, {'a1':True, 'a2':False}, {'a1':False, 'a2':False}, {'a1':False, 'a2':True},

{'a1': False, 'a2': False}, {'a1':False, 'a2':False}, {'a1':True, 'a2':False}, {'a1':False, 'a2':True}, {'a1':False, 'a2':False},]

df = pd.DataFrame(d)

df

Out[1]:

a1 a2

0 False False

1 True False

2 True False

3 False False

4 False True

5 False False

6 False False

7 True False

8 False True

9 False False

我试图找到最快,最“ Pythonic”的方式来实现以下目标:

>如果a1 == True,则计数当前行中a2 == False的实例(例如第1行:a1 = True,对于第1行中的三行,a2为False)

>在a2 == True的第一个实例时,停止计数(例如,第4行,count = 3)

>在开始计数的行上将’count’的值设置为新的df列’a3′(例如,第1行的’a3’= 3)

目标结果集如下.

a1 a2 a3

0 False False 0

1 True False 3

2 True False 2

3 False False 0

4 False True 0

5 False False 0

6 False False 0

7 True False 1

8 False True 0

9 False False 0

我一直在尝试使用for循环,iterrows和while循环来完成此操作,但到目前为止,还没有能够提供一个良好的嵌套组合来提供我想要的结果.任何帮助表示赞赏.如果问题不能完全解决,我深表歉意.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值