我正在对数据帧中的类别变量进行编码。我找到了一个很好的pythonic方法来使用lambda表达式。例如,以下代码行将性别类别“ male”和“ female”(编码为字符串)替换为值0和1。
train_frame['Sex'] = train_frame['Sex'].apply(lambda x : 1 if x =='male' else 0)
现在我的问题是,我是否也可以这样做,但是要针对两个以上类别? (这么说的话要多于1个if语句)。
[我正在尝试在人们登船的地方做这个,我想用整数代表人们登船的地方(一些背景信息:S =南安普敦,C =瑟堡,Q =皇后镇)
我试图做这样的事情,但是不起作用:
,而且有点不合时宜:是否有更多的Python方式在数据框中编码类别?#Southampton = 0, Cherbourg = 1, Queenstown = 2 train_frame['Embarked'] = train_frame['Embarked'].apply(lambda x: 0 if x =='S', 1 if x=='C' else 2 )
有人可以向我解释一下是否可以使用带有多个if语句的lambda表达式吗?
我正在对数据帧中的类别变量进行编码。我找到了一个很好的pythonic方法来使用lambda表达式。例如,下面的代码行替换性别类别“男性”和“ ...
一种方法是使用dict
尝试
如果可以避免使用,apply
,通常不是一个好主意。在这种情况下,我建议使用.get_dummies
或scikit-learn的变压器。或者,您可以使用replace