Как очистить столбцы со значениями «10 -12» (представлены в диапазоне) в кадре данных pandas? - PullRequest
0 голосов
/ 20 октября 2019

У меня есть набор данных по продажам автомобилей, где я пытаюсь предсказать цену продаж с учетом характеристик автомобиля. У меня есть переменная под названием «Город экономии топлива», которая имеет значения вроде 10,12,10-12,13-14, .. в кадре данных панд. Мне нужно преобразовать это в числовое значение, чтобы применить алгоритм регрессии. У меня нет предметных знаний об автомобилях. Пожалуйста помоги.

Я попытался удалить дефис, но он трактуется как четырехзначное значение, которое я не считаю правильным в этом контексте.

1 Ответ

0 голосов
/ 20 октября 2019

Вы можете попробовать pd.get_dummies(), который создаст отдельный столбец для различных диапазонов, помечая каждый столбец True (1) или False (0). Затем они могут использоваться вместо диапазонов (которые считаются категориальными данными.)

import pandas as pd

data = [[10,"blue", "Ford"], [12,"green", "Chevy"],["10-12","white", "Chrysler"],["13-14", "red", "Subaru"]]
df = pd.DataFrame(data, columns = ["Fuel Economy city", "Color", "Make"])
print(df) 
df = pd.get_dummies(df)
print(df)

ВЫХОД:

Fuel Economy city_10  Fuel Economy city_12  Fuel Economy city_10-12  \
0                     1                     0                        0   
1                     0                     1                        0   
2                     0                     0                        1   
3                     0                     0                        0   

Fuel Economy city_13-14  Color_blue  Color_green  Color_red  Color_white  \
0                        0           1            0          0            0   
1                        0           0            1          0            0   
2                        0           0            0          0            1   
3                        1           0            0          1            0   

Make_Chevy  Make_Chrysler  Make_Ford  Make_Subaru  
0           0              0          1            0  
1           1              0          0            0  
2           0              1          0            0  
3           0              0          0            1  
...