最初的困境:
遇到看似難以克服的挑戰,同時嘗試將新列合併到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 來優雅地處理丟失的鍵。
其他注意事項:
以上是如何對應字典值以在 Pandas DataFrame 中建立新列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!