我为字符串列设置了数据,我不得不将它们转换为int值,问题是某些列具有90多个不同的值并进行转换 手动并花费时间,是否有自动解决问题的功能?
我做到了,但是是手动完成的:
price_dict = {91:0, 65:1, 0:1, 20:1, 35:1, 32:1, 41:1, 36:1, 15:1, 90:1, 6:1, 67:1, 2:1, 57:1, 39:1, 1:1, 79:1, 34:1, 85:1} # not all
app[`Price`] = app[`Price`].apply(lambda a: price_dict[a]) # 0 = free, 1 = not free
app[`Price`].value_counts() # To check.
我尝试过:
for x in app[`Price`]:
if x == 1:
price_dict = {91:0}
else:
price_dict = {x:1}
app[`Price`] = app[`Price`].apply(lambda a: price_dict[a])# 0 = free, 1 = not free
app[`Price`].value_counts()
答案 0 :(得分:0)
您可以使用map
使用字典来定义定义的转换来转换列:
price_dict = {91:0, 65:1, 0:1, 20:1, 35:1, 32:1, 41:1, 36:1, 15:1, 90:1, 6:1, 67:1, 2:1, 57:1, 39:1, 1:1, 79:1, 34:1, 85:1} # not all
app['Price'] = app['Price'].map(price_dict)
app['Price'].value_counts()
您也可以像这样替换列中的值:
app['Price_new'] = 1
app.loc[app.Price == 91, 'Price_new'] = 0