用于标记化的Lamda函数

时间:2020-03-11 09:18:03

标签: python lambda

我正在研究一个用于预测房价的项目,数据集中我的一列是尺寸(即卧室数)

因此,当我运行此df3['size'].unique()时,我得到以下输出

array(['2 BHK', '4 Bedroom', '3 BHK', '4 BHK', '6 Bedroom', '3 Bedroom',
   '1 BHK', '1 RK', '1 Bedroom', '8 Bedroom', '2 Bedroom',
   '7 Bedroom', '5 BHK', '7 BHK', '6 BHK', '5 Bedroom', '11 BHK',
   '9 BHK', '9 Bedroom', '27 BHK', '10 Bedroom', '11 Bedroom',
   '10 BHK', '19 BHK', '16 BHK', '43 Bedroom', '14 BHK', '8 BHK',
   '12 Bedroom', '13 BHK', '18 Bedroom'], dtype=object)

我正在使用lamda函数,它会删除字符串并仅提供数字值

df3['bhk'] = df3['size'].apply(lambda x: int(x.split(' ')[0]))
df3['bhk'].unique()

上面的代码给出了输出

array([ 2,  4,  3,  6,  1,  8,  7,  5, 11,  9, 27, 10, 19, 16, 43, 14, 12,
   13, 18], dtype=int64)

有人可以解释一下lambda函数是如何逐步执行的,[0]在表达式中的含义是什么

1 个答案:

答案 0 :(得分:1)

通过调用apply,您会将lambda函数应用于列表的每个元素。

使用x.split(' '),您将'4 Bedroom'之类的字符串拆分为一个列表,例如:['4', 'Bedroom']

然后,您仅使用此列表...[0]的第一个元素。在这种情况下,x.split(' ')[0] == ['4', 'Bedroom'][0] == '4'

稍后您通过调用'4'

将此字符串int(...)转换为整数

这是您获取整数列表的方式。