我正在研究一个用于预测房价的项目,数据集中我的一列是尺寸(即卧室数)
因此,当我运行此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]
在表达式中的含义是什么
答案 0 :(得分:1)
通过调用apply
,您会将lambda函数应用于列表的每个元素。
使用x.split(' ')
,您将'4 Bedroom'
之类的字符串拆分为一个列表,例如:['4', 'Bedroom']
然后,您仅使用此列表...[0]
的第一个元素。在这种情况下,x.split(' ')[0] == ['4', 'Bedroom'][0] == '4'
稍后您通过调用'4'
int(...)
转换为整数
这是您获取整数列表的方式。