36
我想要做一些在熊貓中應該非常簡單的東西,但它似乎什麼都不是。我正在嘗試將列添加到基於另一個(現有)列的映射值的現有熊貓數據框中。這裏是一個小的測試案例:用字典中的映射值添加一個新的熊貓列
import pandas as pd
equiv = {7001:1, 8001:2, 9001:3}
df = pd.DataFrame({"A": [7001, 8001, 9001]})
df["B"] = equiv(df["A"])
print(df)
我希望下面的會導致:
A B
0 7001 1
1 8001 2
2 9001 3
相反,我得到一個錯誤,告訴我,當量是不是調用函數。公平的,這是一本字典,但即使我把它包裝在一個函數中,我仍然感到沮喪。於是,我就用這似乎與其他業務工作的一個地圖功能,但它也通過使用字典的戰敗:
df["B"] = df["A"].map(lambda x:equiv[x])
在這種情況下,我剛剛得到KeyError異常:8001我已經通過閱讀文檔和以前的帖子,但還沒有遇到任何建議如何混合字典與熊貓數據框。任何建議將不勝感激。
有沒有辦法做到這一點,如果你的數據是字符串,而不是中斷?這只是給我一些字符串的NaNs。 – griffinc
沒關係,請參閱這裏的答案http://stackoverflow.com/questions/20250771/remap-values-in-pandas-column-with-a-dict – griffinc