首頁  >  文章  >  後端開發  >  如何有效地將映射列新增到 Pandas DataFrame 中?

如何有效地將映射列新增到 Pandas DataFrame 中?

DDD
DDD原創
2024-10-29 02:27:29208瀏覽

How to Efficiently Add a Mapped Column to a Pandas DataFrame?

在Pandas DataFrame 新增映射列

使用pandas 時,基於現有列新增具有對應值的新欄位可以是一項簡單的任務。但是,某些方法可能會導致錯誤或困難。

一種常見的嘗試是將映射值直接分配給新列:

<code class="python">df["B"] = equiv(df["A"])</code>

但是,這將失敗,因為等效,表示字典,不是可調用函數。

另一個可能無法產生所需結果的方法是將map 與lambda 函數一起使用:

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

此表達式可能會引發KeyError,除非字典鍵與列值完全匹配。

正確的解決方案

添加映射列的正確方法是直接將映射與字典一起使用:

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

此方法將使用equal 字典中的映射值建立一個新列B。如果字典中不存在某個鍵,則對應的行將被指派 NaN。

範例

考慮以下 DataFrame:

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

應用正確的映射將產生所需的結果:

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

print(df)

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

以上是如何有效地將映射列新增到 Pandas DataFrame 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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