將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中文網其他相關文章!