帶有分隔符號連接器的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中文網其他相關文章!