簡體   English   中英

Pandas groupby 按 NaN 拆分

[英]Pandas groupby split by NaN

我有一個問題,請教各位

我想像grp1,grp2,grp3,grp4那樣拆分df

下面的數據是一個示例,我確實需要處理大量數據,所以請告訴我如何適當地處理。

df = 
                            A1     B1
    2021-03-18 00:00:00     10     23
    2021-03-18 00:00:01     11     28 
    2021-03-18 00:00:02     12     29
    2021-03-18 00:00:03     NaN    NaN
    2021-03-18 00:00:04     NaN    NaN
    2021-03-18 00:00:05     42     32
    2021-03-18 00:00:06     51     90 
    2021-03-18 00:00:07     NaN    NaN
    2021-03-18 00:00:08     90     101
    2021-03-18 00:00:09     32     42
    2021-03-18 00:00:10     NaN    NaN
    2021-03-18 00:00:11     575    333
    2021-03-18 00:00:12     62     421
grp1 =
                              A1     B1
      2021-03-18 00:00:00     10     23
      2021-03-18 00:00:01     11     28 
      2021-03-18 00:00:02     12     29
grp2 =
                              A1     B1
      2021-03-18 00:00:05     42     32
      2021-03-18 00:00:06     51     90 
grp3 =
                              A1     B1
      2021-03-18 00:00:08     90     101
      2021-03-18 00:00:09     32     42
grp4 =
                              A1     B1
      2021-03-18 00:00:11     575    333
      2021-03-18 00:00:12     62     421

嘗試:

x = (df.shift(1).isnull() & df.notnull()).cumsum()['B1']
df_list = []
for i,g in df.groupby(x):
    print(i,g.dropna())
    df_list.append(g.dropna())

1                        A1    B1
2021-03-18 00:00:00  10.0  23.0
           00:00:01  11.0  28.0
           00:00:02  12.0  29.0
2                        A1    B1
2021-03-18 00:00:05  42.0  32.0
           00:00:06  51.0  90.0
3                        A1     B1
2021-03-18 00:00:08  90.0  101.0
           00:00:09  32.0   42.0
4                         A1     B1
2021-03-18 00:00:11  575.0  333.0
           00:00:12   62.0  421.0

df_list將包含所有分組的 dataframe。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM