gpt4 book ai didi

python - Pandas 获得连续的行

转载 作者:行者123 更新时间:2023-12-03 21:43:04 26 4
gpt4 key购买 nike

我想将 Pandas 中的数据帧拆分为多个数据帧。
我的数据框有一个名为“C”的列,其中一些行包含 0。我希望做的是使用带有 0 的行作为分隔符,因此我在列“C”中获得带有值的连续行。我不认为 groupby 是要走的路,因为它需要具有相同值的行,这并不是我想要实现的目标,除非我将它与 .diff() 一起使用?我不知道。我觉得我现在已经尝试了很多东西,但是 Python 和 Pandas 不是我最强的语言,所以我不确定可能性是什么。
然而,我设法使用我自己的 for 循环和 if 语句手动遍历所有帧的逻辑使其工作,但这是一个缓慢的过程,我希望改进它。
之前:


一种
C


1
4

2
5

3
0

4
5

5
4

6
5


之后:


一种
C


1
4

2
5



一种
C


4
5

5
4

6
5


如果不清楚,我正在使用 Python,任何帮助表示赞赏。非常感谢。

最佳答案

您可以创建数据帧列表:

#compare for equal 0
m = df['C'].eq(0)
#filter out 0 rows and grouping by cumulative sum of mask
dfs = [x for _, x in df[~m].groupby(m.cumsum())]
print (dfs)
[ A C
0 1 4
1 2 5, A C
3 4 5
4 5 4
5 6 5]

print (dfs[1])
A C
3 4 5
4 5 4
5 6 5

关于python - Pandas 获得连续的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66242362/

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