gpt4 book ai didi

python - NA 上的 Pandas 累积最大重置

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

所以我有一个如下所示的数据框:

2019-01-09 13:00:00-06:00  0.0  5264.927000
2019-01-09 13:05:00-06:00 1.0 5264.927028
2019-01-09 13:10:00-06:00 0.0 5244.075097
2019-01-09 13:15:00-06:00 0.0 5226.784019
2019-01-09 13:20:00-06:00 0.0 5235.085161
2019-01-09 13:25:00-06:00 0.0 5246.221935
2019-01-09 13:30:00-06:00 0.0 5232.491797
2019-01-09 13:35:00-06:00 0.0 5231.456668
2019-01-09 13:40:00-06:00 0.0 5234.495478
2019-01-09 13:45:00-06:00 0.0 5242.245801
2019-01-09 13:50:00-06:00 0.0 5241.228244
2019-01-09 13:55:00-06:00 0.0 5239.997655
2019-01-09 14:00:00-06:00 0.0 5243.712108
2019-01-09 14:05:00-06:00 0.0 5247.304100
2019-01-09 14:10:00-06:00 0.0 5250.996665
2019-01-09 14:15:00-06:00 0.0 5254.568331
2019-01-09 14:20:00-06:00 0.0 5254.568000
2019-01-09 14:25:00-06:00 1.0 5261.586980
2019-01-09 14:30:00-06:00 0.0 5262.187910
2019-01-09 14:35:00-06:00 0.0 5257.388773
2019-01-09 14:40:00-06:00 0.0 5255.861004
2019-01-09 14:45:00-06:00 0.0 5248.942361
2019-01-09 14:50:00-06:00 0.0 5246.232192
2019-01-09 14:55:00-06:00 0.0 5252.215607
2019-01-09 15:00:00-06:00 0.0 5252.628778
2019-01-09 15:05:00-06:00 0.0 5253.012436
2019-01-09 15:10:00-06:00 0.0 5248.225834
2019-01-09 15:15:00-06:00 0.0 5245.495417
2019-01-09 15:20:00-06:00 0.0 5240.674316
2019-01-09 15:25:00-06:00 0.0 5242.054722

第一列只能采用 10。我想在第二列上运行累积最大值,但每当我们在第一列中输入 1 时,累积最大值就会重置。我这样做的方法是循环查找第一列中 1 的位置,然后对每个部分执行 cum-max。我希望找到一种更快的方法来做到这一点。

最佳答案

col1 = df[1]
col2 = df[2]
group = (col1.sum() - col1.cumsum()) * (col2.max() + 1)
result = (col2 - group).cummax() + group

此方法比 groupby 和 for 循环快得多。

关于python - NA 上的 Pandas 累积最大重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54315783/

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