在Pandas 中使用分隔符號連接分組值
使用groupby 函數將具有多個值的資料分組時,經常會遇到此問題不使用分隔符號連接這些值。要解決此問題,您可以利用 agg 方法。
考慮以下DataFrame:
col | val -----|----- A | Cat A | Tiger B | Ball B | Bat
要根據col 列將這些行分組並連接val 列中的值,請使用以下程式碼:
import pandas as pd df = pd.DataFrame({'col': ['A', 'A', 'B', 'B'], 'val': ['Cat', 'Tiger', 'Ball', 'Bat']}) grouped = df.groupby('col')['val'].agg('-'.join)
這種方法應該會產生所需的結果result:
col | val -----|----- A | Cat-Tiger B | Ball-Bat
但是,如果使用apply方法作為替代方法,則可能會導致意外結果,連字符值會多次出現,如下所示:
df.groupby('col')['val'].apply(lambda x: '-'.join(x)) col | val -----|----- A | C-a-t-T-i-g-e-r B | B-a-l-l-B-a-t
為了避免這個問題,請使用 agg 方法,如上面的示例所示。
此外,將分組索引或 MultiIndex 轉換為常規索引列,您可以使用reset_index方法:
df1 = grouped.reset_index(name='new')
以上是如何使用分隔符號有效地連接 Pandas 中的分組值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!