Python 类型错误:';浮动';对象不可与apply lambda一起使用
我试图将条件应用于pandas数据帧中的列,但出现以下错误:Python 类型错误:';浮动';对象不可与apply lambda一起使用,python,pandas,dataframe,Python,Pandas,Dataframe,我试图将条件应用于pandas数据帧中的列,但出现以下错误: TypeError:“float”对象不可编辑 Cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'], 'Price': [22.000,25.000,27.000,35.000] } Cars = DataFrame(Cars, columns= ['Brand', 'Price']) Cars['Pri
TypeError:“float”对象不可编辑
Cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'],
'Price': [22.000,25.000,27.000,35.000]
}
Cars = DataFrame(Cars, columns= ['Brand', 'Price'])
Cars['Price']=Cars['Price'].apply(lambda x:[0如果y不遍历列表,。将应用到列中的每个元素
试试这句话:
Cars['Price']=Cars['Price'].apply(λx:0,如果x这里apply
是一个不好的选择,因为引擎盖下有循环,所以在大数据中速度很慢。最好使用矢量化解决方案:
使用apply
,函数的参数是容器的单个元素。换句话说,不是lambda x:[0如果y My bad,我对.apply的定义解释错误
Cars ['Price'] = Cars ['Price'].apply(lambda x: [0 if y <= 25.000 else 1 for y in x])
Cars ['Price'] = np.where(Cars ['Price'] <= 25.000, 0, 1)
Cars ['Price'] = (Cars ['Price'] > 25.000).astype(int)
print (Cars)
Brand Price
0 Honda Civic 0
1 Toyota Corolla 0
2 Ford Focus 1
3 Audi A4 1