首頁 >後端開發 >Python教學 >如何有效地將 Pandas DataFrame 欄位中的連續值分組?

如何有效地將 Pandas DataFrame 欄位中的連續值分組?

DDD
DDD原創
2024-12-05 04:54:08452瀏覽

How Can I Efficiently Group Consecutive Values in a Pandas DataFrame Column?

將 Pandas DataFrame 中的連續值分組

在 DataFrame 中,您可能會遇到包含需要分組在一起的連續值的欄位。例如,考慮以下列的值:

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

要有效地將這些值分組到所需的群組中,例如:

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

使用Pandas 庫執行以下步驟:

使用自訂系列分組的解決方案

您可以利用自訂系列來實現此分組。方法如下:

import pandas as pd

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

# Use ne() and cumsum() to create grouping indicator
ind = df['a'].ne(df['a'].shift()).cumsum()

# Group by this indicator
for i, g in df.groupby(ind):
    # Print grouping key
    print(i)
    
    # Print rows in group
    print(g)
    
    # Convert values to list for display
    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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn