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

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

Linda Hamilton
Linda Hamilton原創
2024-10-29 20:35:02539瀏覽

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

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