首頁 >後端開發 >Python教學 >如何將聚合列新增到 Pandas 中的分組 DataFrame 中?

如何將聚合列新增到 Pandas 中的分組 DataFrame 中?

Patricia Arquette
Patricia Arquette原創
2024-10-19 11:46:01520瀏覽

How to Add Aggregated Columns to Grouped DataFrames in Pandas?

向Pandas 中的分組資料框新增欄位

在Pandas 中使用資料框時,通常需要將資料分組並聚合其中的值組。通常,這涉及使用聚合結果來建立單獨的資料幀。但是,將這些聚合列直接新增至原始資料框也很有用。

讓我們用一個簡單的範例資料框來說明這一點:

<code class="python">df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})</code>

計算「type」的值對於「c」的每個值,我們可以使用以下程式碼:

<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t')</code>

這將建立一個新的資料框“g”,其中包含三列:“c”、“type”和“t”,分別代表每個“c”中每個“類型”的計數。

接下來,我們可以使用“size()”方法來計算每個組中的行數:

<code class="python">a = df.groupby('c').size().reset_index(name='size')</code>

這個創建一個包含兩列的新資料框“a” :“c”和“size”,其中包含每個“c”組中的行數。

要將「size」欄位加入到原始資料框,有一個選項是使用問題中所示的「map()」函數。然而,更直接的方法是使用 'transform()' 方法:

<code class="python">g['size'] = df.groupby('c')['type'].transform('size')</code>

'transform()' 方法傳回一個 Series,其索引與原始資料幀對齊。透過將此系列指派給分組資料框中的新列,我們可以有效地將聚合值新增回原始資料框。

產生的資料框「g」現在將包含附加的「size」欄位:

   c type  t  size
0  1    m  1     3
1  1    n  1     3
2  1    o  1     3
3  2    m  2     4
4  2    n  2     4

這種方法提供了一種簡單有效的方法來將聚合列新增至Pandas中的分組資料幀中。

以上是如何將聚合列新增到 Pandas 中的分組 DataFrame 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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