gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 18:18:33 26 4
gpt4 key购买 nike

我将字典传递给 map 函数以重新编码 Pandas 数据框列中的值。但是,我注意到如果原始系列中有一个值未在字典中明确显示,它会被重新编码为 NaN。这是一个简单的例子:

正在输入...

s = pd.Series(['one','two','three','four'])

...创建系列

0      one
1 two
2 three
3 four
dtype: object

但是应用 map ...

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 函数的选项?我面临的挑战是,我不能总是预测我正在重新编码的系列中的所有可能值——数据将在未来更新,并且可能会出现新值。

谢谢!

最佳答案

使用replace而不是 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

关于Python 'map' 函数插入 NaN,是否可以返回原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35589820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com