Python';地图';函数插入NaN,是否可以返回原始值?

Python';地图';函数插入NaN,是否可以返回原始值?,python,pandas,map-function,Python,Pandas,Map Function,我正在向map函数传递一个字典,以重新编码数据帧列中的值。但是,我注意到,如果原始序列中有一个值没有显式地出现在字典中,它将被重新编码为NaN。下面是一个简单的例子: 打字 s = pd.Series(['one','two','three','four']) …创建系列 0 one 1 two 2 three 3 four dtype: object 0 A 1 B 2 C 3 NaN dtype: object 但是

我正在向
map
函数传递一个字典,以重新编码数据帧列中的值。但是,我注意到,如果原始序列中有一个值没有显式地出现在字典中,它将被重新编码为
NaN
。下面是一个简单的例子:

打字

s = pd.Series(['one','two','three','four'])
…创建系列

0      one
1      two
2    three
3     four
dtype: object
0      A
1      B
2      C
3    NaN
dtype: object
但是应用地图

recodes = {'one':'A', 'two':'B', 'three':'C'}
s.map(recodes)
…返回序列

0      one
1      two
2    three
3     four
dtype: object
0      A
1      B
2      C
3    NaN
dtype: object
如果系列
s
中的任何元素不在
recodes
字典中,我希望它保持不变。也就是说,我更愿意返回下面的系列(使用原始的
four
而不是
NaN

是否有一种简单的方法可以做到这一点,例如传递到
map
函数的选项?我面临的挑战是,我不能总是预测我正在重新编码的序列中所有可能的值-数据将在将来更新,并且可能出现新的值

谢谢

使用而不是
映射

>>> s = pd.Series(['one','two','three','four'])
>>> recodes = {'one':'A', 'two':'B', 'three':'C'}
>>> s.map(recodes)
0      A
1      B
2      C
3    NaN
dtype: object
>>> s.replace(recodes)
0       A
1       B
2       C
3    four
dtype: object

您没有为
four
创建词典条目。