简体   繁体   English

使用 Pandas Series 分组连续上升和下降

[英]Group consecutive rises and falls using Pandas Series

I want to group consecutive growth and falls in pandas series.我想在熊猫系列中分组连续增长和下降。 I have tried this, but it seems not working:我已经尝试过了,但它似乎不起作用:

consec_rises = self.df_dataset.diff().cumsum()
group_consec = consec_rises.groupby(consec_rises)

My dataset:我的数据集:

date
2022-01-07     25.847718
2022-01-08     29.310294
2022-01-09     31.791339
2022-01-10     33.382136
2022-01-11     31.791339
2022-01-12     29.310294
2022-01-13     25.847718
2022-01-14     21.523483
2022-01-15     16.691068
2022-01-16     11.858653
2022-01-17      7.534418

I want to get result as following:我想得到如下结果:

Group #1 (consecutive growth)
2022-01-07     25.847718
2022-01-08     29.310294
2022-01-09     31.791339
2022-01-10     33.382136
    
Group #2 (consecutive fall)
2022-01-12     29.310294
2022-01-13     25.847718
2022-01-14     21.523483
2022-01-15     16.691068
2022-01-16     11.858653
2022-01-17      7.534418

If I understand you correctly:如果我理解正确:

mask = df["date"].diff().bfill() >= 0

for _, g in df.groupby((mask != mask.shift(1)).cumsum()):
    print(g)
    print("-" * 80)

Prints:印刷:

                 date
2022-01-07  25.847718
2022-01-08  29.310294
2022-01-09  31.791339
2022-01-10  33.382136
--------------------------------------------------------------------------------
                 date
2022-01-11  31.791339
2022-01-12  29.310294
2022-01-13  25.847718
2022-01-14  21.523483
2022-01-15  16.691068
2022-01-16  11.858653
2022-01-17   7.534418
--------------------------------------------------------------------------------

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM