gpt4 book ai didi

python - Pandas 按行值拆分/分组数据框

转载 作者:行者123 更新时间:2023-11-28 20:33:02 24 4
gpt4 key购买 nike

我有以下形式的数据框

In [1]: df
Out [1]:
A B C D
1 0 2 6 0
2 6 1 5 2
3 NaN NaN NaN NaN
4 9 3 2 2
...
15 2 12 5 23
16 NaN NaN NaN NaN
17 8 1 5 3

我有兴趣按 NaN 行将数据帧拆分为多个数据帧(或将其分组)。

所以结果如下

In [2]: df1
Out [2]:
A B C D
1 0 2 6 0
2 6 1 5 2

In [3]: df2
Out [3]:
A B C D
1 9 3 2 2
...
12 2 12 5 23

In [4]: df3
Out [4]:
A B C D
1 8 1 5 3

最佳答案

您可以使用 compare-cumsum-groupby 模式,我们在其中找到全空行,对这些行进行累积求和以获得每个子组的组号,然后遍历这些组:

In [114]: breaks = df.isnull().all(axis=1)

In [115]: groups = [group.dropna(how='all') for _, group in df.groupby(breaks.cumsum())]

In [116]: for group in groups:
...: print(group)
...: print("--")
...:
A B C D
1 0.0 2.0 6.0 0.0
2 6.0 1.0 5.0 2.0
--
A B C D
4 9.0 3.0 2.0 2.0
15 2.0 12.0 5.0 23.0
--
A B C D
17 8.0 1.0 5.0 3.0
--

关于python - Pandas 按行值拆分/分组数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51483386/

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