gpt4 book ai didi

python - Pandas :映射到新列,不包括一些代码

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:39 25 4
gpt4 key购买 nike

我有一个键和值的字典。我想“映射”数据框列中的数字,其中原始列是键,新列是值。

但是,字典中的任何值都应编码为 999。

原始数据框:

     Col1
0 02
1 03
2 02
3 02
4 04
5 88
6 77

字典:

codes = {'01':'05',
'02':'06',
'03':'07',
'04':'08'}

预期输出:

>>> df['ColNew'] = df['Col1'].map(codes)

ColNew
0 06
1 07
2 06
3 06
4 08
5 999
6 999

除了首先将 999 代码包含在字典中之外,我不确定该怎么做。当涉及超过一百个代码并且其中只有少数需要是 999 以外的任何代码时,这令人沮丧。

最佳答案

使用 mapdict.get
dict.get允许您在 key 不存在的情况下传递默认值。

df['ColNew'] = df['Col1'].map(lambda x: codes.get(x, 999))

df

Col1 ColNew
0 02 06
1 03 07
2 02 06
3 02 06
4 04 08
5 88 999
6 77 999

这也将保留 dtypes。在这种情况下,这无关紧要,因为该列的 dtypeobject

但是,如果它是int,当NaN返回时,map会把它变成float。通过使用默认值,我们避免了类型转换。

关于python - Pandas :映射到新列,不包括一些代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43395390/

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