我有以下 df:
Open Close Color dfpct
2021-06-24 15757.200638 15762.962646 green 0.006598
2021-06-25 15760.081642 15835.699707 green 0.004427
2021-06-28 15797.890675 15859.462646 green -0.002878
2021-06-29 15828.676661 15778.975098 red -0.004189
2021-06-30 15803.825879 15761.562500 red -0.001711
2021-07-01 15782.69419 15714.412354 red -0.002640
2021-07-02 15748.553272 15700.587402 red 0.002691
2021-07-05 15724.570337 15808.937500 green 0.007133
2021-07-06 15766.753918 15836.800049 green -0.001017
2021-07-07 15801.776984 15843.125000 green 0.003882
2021-07-08 15822.450992 15787.987793 red -0.009556
2021-07-09 15805.219392 15685.412354 red -0.002422
2021-07-12 15745.315873 15723.337402 red 0.000178
2021-07-13 15734.326638 15792.937256 green 0.007631
2021-07-14 15763.631947 15826.050049 green 0.002631
2021-07-15 15794.840998 15900.925049 green 0.004431
2021-07-16 15847.883023 15931.649902 green -0.000050
2021-07-19 15889.766463 15762.825195 red -0.010739
2021-07-20 15826.295829 15660.762451 red -0.007637
2021-07-22 15743.52914 15780.462402 green 0.012279
2021-07-23 15761.995771 15845.262451 green 0.002022
2021-07-26 15803.629111 15841.024902 green -0.001993
2021-07-27 15822.327007 15797.375000 red -0.004929
2021-07-28 15809.851003 15687.975098 red -0.002353
2021-07-29 15748.913051 15774.074951 green 0.004395
2021-07-30 15761.494001 15792.824707 green -0.000976
2021-08-02 15777.159354 15871.900391 green 0.007746
2021-08-03 15824.529872 16035.887451 green 0.015461
2021-08-04 15930.208662 16230.100098 green 0.007938
2021-08-05 16080.15438 16285.824951 green 0.002202
2021-08-06 16182.989665 16275.662598 green -0.003461
2021-08-09 16229.326132 16259.849854 green 0.001235
2021-08-10 16244.587993 16279.099854 green 0.001344
2021-08-11 16261.843923 16277.712402 green 0.000132
2021-08-12 16269.778163 16332.612793 green 0.005045
2021-08-13 16301.195478 16458.674561 green 0.010064
2021-08-16 16379.935019 16537.900391 green 0.002054
2021-08-17 16458.917705 16570.950195 green 0.003112
2021-08-18 16514.93395 16624.624512 green -0.002754
2021-08-20 16569.779231 16429.650146 red -0.007143
2021-08-23 16499.714689 16519.224609 green 0.002793
2021-08-24 16509.469649 16582.100098 green 0.007768
2021-08-25 16545.784873 16654.649902 green 0.000605
2021-08-26 16600.217388 16637.987305 green 0.000135
2021-08-27 16619.102346 16658.850098 green 0.004105
2021-08-30 16638.976222 16855.812500 green 0.013520
2021-08-31 16747.394361 17037.262207 green 0.011880
2021-09-01 16892.328284 17135.662598 green -0.003266
2021-09-02 17013.995441 17158.687500 green 0.009247
2021-09-03 17086.34147 17284.586914 green 0.005190
我想要做的是在颜色列中的 3 个红色之后打印 dfpct
的值,然后打印 green
和 dfpct
的值第二天。
例如。
日期 2021-06-29
到 2021-07-02
为红色。颜色已于 2021-07-02
切换为绿色。我想要的是 2021-07-06
上的值,即 -0.001017。
这真的很复杂,我想在这里做任何帮助,我们将不胜感激
最佳答案
尝试:
df[
(df.groupby((df["Color"] != "red").cumsum()).cumcount().diff() <= -3)
.shift()
.fillna(False)
]
输出:
Open Close Color dfpct
2021-07-06 15766.753918 15836.800049 green -0.001017
2021-07-14 15763.631947 15826.050049 green 0.002631
尝试使用groupby
、cumsum
、cumcount
、diff
和shift
>.
创建一个红色递增的系列,当发现绿色时,它会回落到零。找到下降量大于或等于-3的地方(代表三个连续的红色)。移动该系列以获取第一个绿色之后的值。
关于python - 连续红色后获取 pandas 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69052116/