首頁 >後端開發 >Python教學 >如何使用分隔符號有效連接 Pandas GroupBy 組中的值?

如何使用分隔符號有效連接 Pandas GroupBy 組中的值?

Linda Hamilton
Linda Hamilton原創
2024-12-04 22:28:141147瀏覽

How Can I Efficiently Concatenate Values within Pandas GroupBy Groups Using a Delimiter?

帶有分隔符號連接器的Pandas GroupBy

當使用多個值將Pandas 中的資料分組時,可能會遇到需要使用具體的分隔符號。但是,簡單的 groupby 和 sum 操作可能會導致不想要的輸出,而沒有所需的分隔符號。

請考慮以下程式碼:

import pandas as pd

df = pd.read_csv("Inputfile.txt", sep='\t')
group = df.groupby(['col'])['val'].sum()
# Output:
# A CatTiger
# B BallBat

這將產生一個具有連接值的單一字串,而不需要所需的連字符分隔符號。

要實現所需的輸出,您可以結合使用apply 函數join:

group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))

但是,由於每個值中包含不需要的字符,此解決方案可能仍然無法產生預期的輸出。

替代解決方案

相反,請考慮使用帶有 join 參數的 agg函數:

df.groupby('col')['val'].agg('-'.join)

這將正確使用連字符分隔符號連接組內的值,提供所需的輸出:

col
A    Cat-Tiger
B     Ball-Bat
Name: val, dtype: object

更新解決方案

要處理MultiIndex 或Index列,您可以重設索引並使用reset_index函數重命名它:

df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')

這會將索引轉換為新列命名為“new”,提供了一種方便的方式來進一步處理分組數據。

以上是如何使用分隔符號有效連接 Pandas GroupBy 組中的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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