首頁  >  文章  >  後端開發  >  如何對應字典值以在 Pandas DataFrame 中建立新列?

如何對應字典值以在 Pandas DataFrame 中建立新列?

Susan Sarandon
Susan Sarandon原創
2024-10-28 20:21:30208瀏覽

How to Map Dictionary Values to Create a New Column in a Pandas DataFrame?

解決Pandas 映射挫折:添加具有映射字典值的列

最初的困境:

遇到看似難以克服的挑戰,同時嘗試將新列合併到Pandas DataFrame 中,並根據現有列資料對應值。同時使用 lambda 函數和字典會導致錯誤或意外結果。

解:

正確的方法在於結合使用 map() 函數目標字典。語法為: df["B"] = df["A"].map(equiv).

解釋:

map() 函數應用一個對指定列中的每個元素進行操作。在本例中,操作是根據列資料提供的鍵從字典 equal 中檢索映射值。

示例:

考慮以下代碼:

<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)
print(df)</code>

輸出:

      A  B
0  7001  1
1  8001  2
2  9001  3

此方法有效地將映射值新增至新列B。此外,它通過返回 NaN 來優雅地處理丟失的鍵。

其他注意事項:

  • 鍵處理:如果字典中的鍵不對應於列中的任何元素,則映射值變為NaN。
  • 效能: 對於大型資料集,映射操作可能需要大量計算。如有必要,請考慮優化技術。

以上是如何對應字典值以在 Pandas DataFrame 中建立新列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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