对 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中文网其他相关文章!