lambda表达式[重复]中的多个if语句

问题描述 投票:0回答:3

我正在对数据帧中的类别变量进行编码。我找到了一个很好的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 =皇后镇)

我试图做这样的事情,但是不起作用:

#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表达式吗?

,而且有点不合时宜:是否有更多的Python方式在数据框中编码类别?

我正在对数据帧中的类别变量进行编码。我找到了一个很好的pythonic方法来使用lambda表达式。例如,下面的代码行替换性别类别“男性”和“ ...

python pandas dataframe lambda
3个回答
0
投票

一种方法是使用dict


0
投票

尝试


0
投票

如果可以避免使用,apply,通常不是一个好主意。在这种情况下,我建议使用.get_dummies或scikit-learn的变压器。或者,您可以使用replace

© www.soinside.com 2019 - 2024. All rights reserved.