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