首页 > 后端开发 > Python教程 > 如何对 Pandas DataFrame 列中的连续值进行分组?

如何对 Pandas DataFrame 列中的连续值进行分组?

Barbara Streisand
发布: 2024-11-27 20:37:15
原创
525 人浏览过

How to Group Consecutive Values in a Pandas DataFrame Column?

对 Pandas DataFrame 中的连续值进行分组

此问题寻求一种对 DataFrame 列中的连续值进行分组的解决方案。考虑以下带有“a”列的 DataFrame:

   a
0  1
1  1
2 -1
3  1
4 -1
5 -1
登录后复制

目标是将这些值分组到表示连续序列的子列表中,如下所示:

[1, 1]
[-1]
[1]
[-1, -1]
登录后复制

解决方案使用自定义系列

为了实现这一目标,我们可以利用自定义系列来识别连续的值中断。以下代码演示了这种方法:

df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]})
print(df)

# Create a series that identifies consecutive value breaks
breaks = df['a'].ne(df['a'].shift()).cumsum()
print(breaks)

# Group the DataFrame by the breaks series
for i, g in df.groupby(breaks):
    print(i)
    print(g)
    print(g.a.tolist())
登录后复制

输出显示所需的连续值分组:

1
   a
0  1
1  1
[1, 1]
2
   a
2 -1
[-1]
3
   a
3  1
[1]
4
   a
4 -1
5 -1
[-1, -1]
登录后复制

以上是如何对 Pandas DataFrame 列中的连续值进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板