gpt4 book ai didi

python - 当列大于 0 时,如何累积重置为 0 的列?

转载 作者:行者123 更新时间:2023-12-04 07:46:53 25 4
gpt4 key购买 nike

我有以下数据框,我想添加一列累积秒数,因为“螺旋钻”列大于 0,只要“螺旋钻”列高于 0,它就会重置为 0。

x = pd.DataFrame(data={
"date": ["2021-03-22 11:01:29", "2021-03-22 11:02:29", "2021-03-22 11:03:29", "2021-03-22 11:04:29", "2021-03-22 11:05:29", "2021-03-22 11:06:29"],
"auger": [1450.0, 1450.0, 0.0, 0.0, 1200.0, 1200.0],
"poll_seconds": [60, 60, 60, 60, 60, 60]
})
有没有办法创建一个名为“seconds_off”的列,只要“螺旋钻”列为 0,它就会从 0 开始对 poll_seconds 进行累加?

最佳答案

mask = x["auger"] != 0

x["count"] = x.groupby((mask != mask.shift(1)).cumsum())[
"poll_seconds"
].cumsum()
x.loc[~mask, "count"] = 0
print(x)
打印:
                  date   auger  poll_seconds  count
0 2021-03-22 11:01:29 1450.0 60 60
1 2021-03-22 11:02:29 1450.0 60 120
2 2021-03-22 11:03:29 0.0 60 0
3 2021-03-22 11:04:29 0.0 60 0
4 2021-03-22 11:05:29 1200.0 60 60
5 2021-03-22 11:06:29 1200.0 60 120

关于python - 当列大于 0 时,如何累积重置为 0 的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67166457/

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