【发布时间】:2019-02-13 15:21:27
【问题描述】:
我正在尝试映射我想要更改的值。 当我像这样应用'map'>> df [column].map(dictionary)时,不在字典中的值转换为NaN。我认为原因是该系列中没有匹配的值,对吗?如果是这样,不应该应用任何东西来转换为 NaN?我如何使用 df.map() 而不是 df.replace() 来解决这个问题?
df1 = pd.Series(['a','b','c','d'])
df
0 a
1 b
2 c
3 d
dtype: object
mapping = {'a' : 0, 'b' : 1, 'c' : 2}
df1.map(mapping)
0 0.0
1 1.0
2 2.0
3 NaN
dtype: float64
或
df1 = pd.Series(['a','b','c','d'])
df
0 a
1 b
2 c
3 d
dtype: object
mapping = {'k' : 0, 'e' : 1, 'f' : 2}
df1.map(mapping)
0 NaN
1 NaN
2 NaN
3 NaN
dtype: float64
【问题讨论】:
-
"如何使用 df.map() 而不是 df.replace() 来解决这个问题?" replace 具有您想要的行为。为什么你认为你需要使用
map? -
其实这只是为了我的编码技能。我想知道地图也可以解决这些问题。
标签: python pandas dictionary nan