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

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

Barbara Streisand
Barbara Streisand原創
2024-12-16 19:55:18348瀏覽

How to Efficiently Join Grouped Values in Pandas with a Delimiter?

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

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