我在数据框(电信)中有一个yes,no列(语音邮件计划),我将其转换为0,1。 documentation 50,000 is the highest value.
使用我转换的以下语法:
telecom['voice mail plan'] = telecom['voice mail plan'].map({'yes': 1, 'no': 0})
但是,如您在下图中看到的,我的列(语音邮件计划)的值变为NaN
。
能不能让我知道是什么问题?
答案 0 :(得分:1)
我认为应该有一些调整空间,然后使用Series.str.strip
:
测试:
print (telecom['voice mail plan'].unique().tolist())
telecom['voice mail plan'] = telecom['voice mail plan'].str.strip().map({'yes': 1, 'no': 0})
答案 1 :(得分:1)
从您的问题中得知,您希望将系列中的“是”更改为1,将“否”更改为0。
以下代码可以解决您的问题。
telecom['voice mail plan'] = telecom['voice mail plan'].replace("yes", 1)
telecom['voice mail plan'] = telecom['voice mail plan'].replace("no", 0)
答案 2 :(得分:0)
这里的一个很好的方法可能是pd。类别:
telecom['voice mail plan'] = pd.Categorical(telecom['voice mail plan']).codes
答案 3 :(得分:0)
我认为lambda函数是解决此问题的好选择
telecom['voice mail plan']=telecom.apply(lambda x : 1 if x['voice mail plan']=='yes' else 0, axis=1)