gpt4 book ai didi

python - 计算具有特定值的一行之后的两行

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:27 24 4
gpt4 key购买 nike

我有一个包含 1 和 NaN 值的数据框,我想计算从 1 到 2 和 3 之后的两行。

import pandas as pd
df=pd.DataFrame({"b" : [1,None,None,None,None,1,None,None,None]})
print(df)

b
0 1.0
1 NaN
2 NaN
3 NaN
4 NaN
5 1.0
6 NaN
7 NaN
8 NaN

像这样:

      b
0 1.0
1 2.0
2 3.0
3 NaN
4 NaN
5 1.0
6 2.0
7 3.0
8 NaN

我知道我可以使用 df.loc[df['b']==1] 来检索那些,但我不知道如何计算下面的两行。

最佳答案

您可以创建一个组变量,其中 b 中的每个 1 开始一个新组,然后为每个组向前填充 2 行,并执行 cumsum:

g = (df.b == 1).cumsum()
df.b.groupby(g).apply(lambda g: g.ffill(limit = 2).cumsum())

#0 1.0
#1 2.0
#2 3.0
#3 NaN
#4 NaN
#5 1.0
#6 2.0
#7 3.0
#8 NaN
#Name: b, dtype: float64

关于python - 计算具有特定值的一行之后的两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41988574/

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