我正在傳遞一個字典到map
函數來重新編碼熊貓數據框的列中的值。但是,我注意到如果原始序列中有一個值不在字典中,它會被重新編碼爲NaN
。下面是一個簡單的例子:插入NaN的Python'map'函數可以返回原始值嗎?
打字...
s = pd.Series(['one','two','three','four'])
...創建系列
0 one
1 two
2 three
3 four
dtype: object
但運用地圖...
recodes = {'one':'A', 'two':'B', 'three':'C'}
s.map(recodes)
.. 。返回系列
0 A
1 B
2 C
3 NaN
dtype: object
我希望如果系列s
中的任何元素不在recodes
字典中,則它保持不變。也就是說,我寧願返回下面的系列(原始four
而不是NaN
)。
0 A
1 B
2 C
3 four
dtype: object
有一個簡單的方法來做到這一點,例如一個選項傳遞給map
功能?我面臨的挑戰是,我無法始終預測我將要重新編碼的系列中的所有可能值 - 數據將在未來進行更新,並且可能會出現新的值。
謝謝!
你沒有創建'four'字典條目。 – zondo