首頁 >後端開發 >Python教學 >如何使用字典中的映射值新增新的 Pandas 欄位?

如何使用字典中的映射值新增新的 Pandas 欄位?

Barbara Streisand
Barbara Streisand原創
2024-11-03 09:51:02364瀏覽

How to Add a New Pandas Column with Mapped Values from a Dictionary?

使用字典中的對應值新增新的 Pandas 欄位

將字典中的值對應到 Pandas DataFrame 中的新欄位可能是一項繁瑣的任務。雖然equiv()函數在提供的程式碼中不可調用,但還有其他方法可以實現此目標。

一個有效的方法是將map()函數與字典結合使用。以下程式碼片段示範如何將Equiv中的映射值指派給DataFrame df中的新欄位「B」:

<code class="python">import pandas as pd

equiv = {7001:1, 8001:2, 9001:3}
df = pd.DataFrame({"A": [7001, 8001, 9001]})
df["B"] = df["A"].map(equiv)</code>

透過向map()函數傳遞一個引用equiv字典的lambda表達式,程式碼成功新增具有對應對應值的新欄位「B」。

<code class="python">df["B"] = df["A"].map(lambda x: equiv[x])</code>

結果是具有所需列「B」的DataFrame,其中包含映射值:

      A  B
0  7001  1
1  8001  2
2  9001  3

此方法可以優雅地處理字典中缺少的鍵,從而導致新列中出現NaN 值。

<code class="python">import pandas as pd

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

print(df)

       A   B
0   7001   1
1   8001   2
2   9001   3
3  10000 NaN</code>

總之,使用 map() 函數提供了一種簡單有效的方法來添加具有映射值的列來自 Pandas DataFrames 中的字典。

以上是如何使用字典中的映射值新增新的 Pandas 欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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