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

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

Mary-Kate Olsen
发布: 2024-11-26 22:33:10
原创
813 人浏览过

How to Group Consecutive Identical Values in a Pandas DataFrame?

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

在 pandas 中,对数据进行分组可能是数据分析和操作的关键任务。处理顺序数据时,通常需要对具有相同特征的连续值进行分组。

问题:

给定一个包含连续值的列的 DataFrame,将这些值分组为连续的段,其中值保持相同。

例如,如果原始列包含以下内容值:

[1, 1, -1, 1, -1, -1]

所需的输出为:

[1, 1] [-1 ] [1] [-1, -1]

解决方案:

为了实现这种分组,pandas 提供了一种使用 groupby 函数的灵活方法。然而,仅仅在列本身上使用 groupby 是不够的。相反,我们需要创建一个自定义系列来标识分段的边界。

以下代码演示了如何实现此解决方案:

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

# Create a custom Series that identifies segment boundaries
boundaries = df['a'].ne(df['a'].shift()).cumsum()

# Group data by the segment boundaries
for i, g in df.groupby(boundaries):
    print(i)
    print(g)
    print(g.a.tolist())
登录后复制

此方法将连续的编号分配给连续的分段其中值保持不变。然后使用这些数字对数据进行相应分组,并打印每个组及其相应的连续值。

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

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