gpt4 book ai didi

python - 在 Dataframe 中递归引用行

转载 作者:行者123 更新时间:2023-12-01 08:28:33 25 4
gpt4 key购买 nike

数据帧df定义如下:

import pandas as pd
df1 = pd.DataFrame({'A':[False,True,True,False,True,True,True,True,False,True,True], 'B':[0,0,0,2,2,1,0,0,1,0,0]}, columns=['A','B'])
df1
A B
0 False 0
1 True 0
2 True 0
3 False 2
4 True 2
5 True 1
6 True 0
7 True 0
8 False 1
9 True 0
10 True 0

每当列 AFalse 但列 B 中的值为 >0 时,False 应移动到下一行,直到 B0。因此上述数据帧所需的输出是

        A  B
0 False 0
1 True 0
2 True 0
3 True 2
4 True 2
5 True 1
6 False 0
7 True 0
8 True 1
9 False 0
10 True 0

最佳答案

IIUC

s=(~df1.A).cumsum() 
# get the group key

groupkey=df1.groupby(s).B.transform('first')>0
# find whether we should include the group when the first B of the group is great than 0 or not

df1.A.update(df1.loc[groupkey&(~(df1.B.gt(0)&(df1.A))),'A'].groupby(s).shift().fillna(True))
# using update
df1
A B
0 False 0
1 True 0
2 True 0
3 True 2
4 True 2
5 True 1
6 False 0
7 True 0
8 True 1
9 False 0
10 True 0
<小时/>

更多信息

~(df1.B.gt(0)&(df1.A)) # exclude those A equal to True and B great than 0 row
0 True
1 True
2 True
3 True
4 False
5 False
6 True
7 True
8 True
9 True
10 True
dtype: bool

关于python - 在 Dataframe 中递归引用行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54056696/

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