簡體   English   中英

使用 Pandas Series 分組連續上升和下降

[英]Group consecutive rises and falls using Pandas Series

我想在熊貓系列中分組連續增長和下降。 我已經嘗試過了,但它似乎不起作用:

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

我的數據集:

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

我想得到如下結果:

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

如果我理解正確:

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

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

印刷:

                 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