首頁 > 後端開發 > Python教學 > 如何將字典值對應到新的 Pandas 欄位?

如何將字典值對應到新的 Pandas 欄位?

Linda Hamilton
發布: 2024-10-29 20:35:02
原創
560 人瀏覽過

How to Map Dictionary Values to a New Pandas Column?

將字典值對應到新的Pandas 欄位

處理Pandas 資料幀時,可能存在需要新增基於新列的情況基於現有列的映射值。為了實現這一點,一個常見的誤解是使用 equal 函數作為新列分配中的參數。但是,這會導致錯誤,因為 equal 不是可呼叫函數。

正確的方法是使用 Pandas 地圖函數。基於字典中的映射值新增列的語法如下:

df["new_column"] = df["existing_column"].map(mapping_function)
登入後複製

mapping_function 是一個接受現有列的值並傳回所需映射值的函數。在這種情況下,映射函數是一個lambda 函數,它利用字典equal 來檢索對應的映射值:

mapping_function = lambda x: equiv[x]
登入後複製

透過利用此方法,資料幀df 將使用新列「B」進行更新包含基於提供的字典的「A」欄位中的對應值:

import pandas as pd
equiv = {7001:1, 8001:2, 9001:3}
df = pd.DataFrame({"A": [7001, 8001, 9001]})
df["B"] = df["A"].map(lambda x: equiv[x])

print(df)
登入後複製

輸出:

      A   B
0  7001   1
1  8001   2
2  9001   3
登入後複製

此方法無縫處理金鑰不存在於字典,如下例:

equiv = {7001:1, 8001:2, 9001:3}
df = pd.DataFrame({"A": [7001, 8001, 9001, 10000]})
df["B"] = df["A"].map(lambda x: equiv[x])

print(df)
登入後複製

輸出:

       A   B
0   7001   1
1   8001   2
2   9001   3
3  10000 NaN
登入後複製

以上是如何將字典值對應到新的 Pandas 欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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