首頁 > 後端開發 > Python教學 > 如何有效地連接 Pandas Groupby 結果中的字串?

如何有效地連接 Pandas Groupby 結果中的字串?

Patricia Arquette
發布: 2024-12-16 15:22:11
原創
883 人瀏覽過

How to Efficiently Join Strings Within Pandas Groupby Results?

有分隔符號連接的 Pandas groupby

在 Pandas 中,在處理包含重複值的資料時,使用 groupby 函數非常有用。但是,如果您希望在保留組中不同值的同時獲得總計值,則可能需要實作自訂聯接操作。

考慮以下範例:

col  val
A    Cat
A    Tiger
B    Ball
B    Bat
登入後複製

使用時groupby函數對「col」中每個唯一值的「val」列求和,會產生以下輸出:

A CatTiger
B BallBat
登入後複製

引入分隔符號(例如「-」)插入連接值,可以使用以下程式碼:

df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))
登入後複製

但是,這種方法會導致意外結果:

A C-a-t-T-i-g-e-r
B B-a-l-l-B-a-t
登入後複製

問題出現此問題的原因是lambda函數接收到包含「val」列中的各個值的 Series對象,而不是連接的值

以下替代方法可用於實現所需的分隔符連接輸出:

df.groupby('col')['val'].agg('-'.join)
登入後複製

這提供了輸出:

col
A    Cat-Tiger
B     Ball-Bat
Name: val, dtype: object
登入後複製

要轉換對列進行索引或多重索引,可以使用reset_index函數:

df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')
登入後複製

以上是如何有效地連接 Pandas Groupby 結果中的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板