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