import pandas as pd
import numpy as np
autos = pd.read_csv('autos.csv', encoding = 'Latin-1')
autos
dateCrawled | name | seller | offerType | price | abtest | vehicleType | yearOfRegistration | gearbox | powerPS | model | odometer | monthOfRegistration | fuelType | brand | notRepairedDamage | dateCreated | nrOfPictures | postalCode | lastSeen | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2016-03-26 17:47:46 | Peugeot_807_160_NAVTECH_ON_BOARD | privat | Angebot | $5,000 | control | bus | 2004 | manuell | 158 | andere | 150,000km | 3 | lpg | peugeot | nein | 2016-03-26 00:00:00 | 0 | 79588 | 2016-04-06 06:45:54 |
1 | 2016-04-04 13:38:56 | BMW_740i_4_4_Liter_HAMANN_UMBAU_Mega_Optik | privat | Angebot | $8,500 | control | limousine | 1997 | automatik | 286 | 7er | 150,000km | 6 | benzin | bmw | nein | 2016-04-04 00:00:00 | 0 | 71034 | 2016-04-06 14:45:08 |
2 | 2016-03-26 18:57:24 | Volkswagen_Golf_1.6_United | privat | Angebot | $8,990 | test | limousine | 2009 | manuell | 102 | golf | 70,000km | 7 | benzin | volkswagen | nein | 2016-03-26 00:00:00 | 0 | 35394 | 2016-04-06 20:15:37 |
3 | 2016-03-12 16:58:10 | Smart_smart_fortwo_coupe_softouch/F1/Klima/Pan... | privat | Angebot | $4,350 | control | kleinwagen | 2007 | automatik | 71 | fortwo | 70,000km | 6 | benzin | smart | nein | 2016-03-12 00:00:00 | 0 | 33729 | 2016-03-15 03:16:28 |
4 | 2016-04-01 14:38:50 | Ford_Focus_1_6_Benzin_TÜV_neu_ist_sehr_gepfleg... | privat | Angebot | $1,350 | test | kombi | 2003 | manuell | 0 | focus | 150,000km | 7 | benzin | ford | nein | 2016-04-01 00:00:00 | 0 | 39218 | 2016-04-01 14:38:50 |
5 | 2016-03-21 13:47:45 | Chrysler_Grand_Voyager_2.8_CRD_Aut.Limited_Sto... | privat | Angebot | $7,900 | test | bus | 2006 | automatik | 150 | voyager | 150,000km | 4 | diesel | chrysler | NaN | 2016-03-21 00:00:00 | 0 | 22962 | 2016-04-06 09:45:21 |
6 | 2016-03-20 17:55:21 | VW_Golf_III_GT_Special_Electronic_Green_Metall... | privat | Angebot | $300 | test | limousine | 1995 | manuell | 90 | golf | 150,000km | 8 | benzin | volkswagen | NaN | 2016-03-20 00:00:00 | 0 | 31535 | 2016-03-23 02:48:59 |
7 | 2016-03-16 18:55:19 | Golf_IV_1.9_TDI_90PS | privat | Angebot | $1,990 | control | limousine | 1998 | manuell | 90 | golf | 150,000km | 12 | diesel | volkswagen | nein | 2016-03-16 00:00:00 | 0 | 53474 | 2016-04-07 03:17:32 |
8 | 2016-03-22 16:51:34 | Seat_Arosa | privat | Angebot | $250 | test | NaN | 2000 | manuell | 0 | arosa | 150,000km | 10 | NaN | seat | nein | 2016-03-22 00:00:00 | 0 | 7426 | 2016-03-26 18:18:10 |
9 | 2016-03-16 13:47:02 | Renault_Megane_Scenic_1.6e_RT_Klimaanlage | privat | Angebot | $590 | control | bus | 1997 | manuell | 90 | megane | 150,000km | 7 | benzin | renault | nein | 2016-03-16 00:00:00 | 0 | 15749 | 2016-04-06 10:46:35 |
10 | 2016-03-15 01:41:36 | VW_Golf_Tuning_in_siber/grau | privat | Angebot | $999 | test | NaN | 2017 | manuell | 90 | NaN | 150,000km | 4 | benzin | volkswagen | nein | 2016-03-14 00:00:00 | 0 | 86157 | 2016-04-07 03:16:21 |
11 | 2016-03-16 18:45:34 | Mercedes_A140_Motorschaden | privat | Angebot | $350 | control | NaN | 2000 | NaN | 0 | NaN | 150,000km | 0 | benzin | mercedes_benz | NaN | 2016-03-16 00:00:00 | 0 | 17498 | 2016-03-16 18:45:34 |
12 | 2016-03-31 19:48:22 | Smart_smart_fortwo_coupe_softouch_pure_MHD_Pan... | privat | Angebot | $5,299 | control | kleinwagen | 2010 | automatik | 71 | fortwo | 50,000km | 9 | benzin | smart | nein | 2016-03-31 00:00:00 | 0 | 34590 | 2016-04-06 14:17:52 |
13 | 2016-03-23 10:48:32 | Audi_A3_1.6_tuning | privat | Angebot | $1,350 | control | limousine | 1999 | manuell | 101 | a3 | 150,000km | 11 | benzin | audi | nein | 2016-03-23 00:00:00 | 0 | 12043 | 2016-04-01 14:17:13 |
14 | 2016-03-23 11:50:46 | Renault_Clio_3__Dynamique_1.2__16_V;_viele_Ver... | privat | Angebot | $3,999 | test | kleinwagen | 2007 | manuell | 75 | clio | 150,000km | 9 | benzin | renault | NaN | 2016-03-23 00:00:00 | 0 | 81737 | 2016-04-01 15:46:47 |
15 | 2016-04-01 12:06:20 | Corvette_C3_Coupe_T_Top_Crossfire_Injection | privat | Angebot | $18,900 | test | coupe | 1982 | automatik | 203 | NaN | 80,000km | 6 | benzin | sonstige_autos | nein | 2016-04-01 00:00:00 | 0 | 61276 | 2016-04-02 21:10:48 |
16 | 2016-03-16 14:59:02 | Opel_Vectra_B_Kombi | privat | Angebot | $350 | test | kombi | 1999 | manuell | 101 | vectra | 150,000km | 5 | benzin | opel | nein | 2016-03-16 00:00:00 | 0 | 57299 | 2016-03-18 05:29:37 |
17 | 2016-03-29 11:46:22 | Volkswagen_Scirocco_2_G60 | privat | Angebot | $5,500 | test | coupe | 1990 | manuell | 205 | scirocco | 150,000km | 6 | benzin | volkswagen | nein | 2016-03-29 00:00:00 | 0 | 74821 | 2016-04-05 20:46:26 |
18 | 2016-03-26 19:57:44 | Verkaufen_mein_bmw_e36_320_i_touring | privat | Angebot | $300 | control | bus | 1995 | manuell | 150 | 3er | 150,000km | 0 | benzin | bmw | NaN | 2016-03-26 00:00:00 | 0 | 54329 | 2016-04-02 12:16:41 |
19 | 2016-03-17 13:36:21 | mazda_tribute_2.0_mit_gas_und_tuev_neu_2018 | privat | Angebot | $4,150 | control | suv | 2004 | manuell | 124 | andere | 150,000km | 2 | lpg | mazda | nein | 2016-03-17 00:00:00 | 0 | 40878 | 2016-03-17 14:45:58 |
20 | 2016-03-05 19:57:31 | Audi_A4_Avant_1.9_TDI_*6_Gang*AHK*Klimatronik*... | privat | Angebot | $3,500 | test | kombi | 2003 | manuell | 131 | a4 | 150,000km | 5 | diesel | audi | NaN | 2016-03-05 00:00:00 | 0 | 53913 | 2016-03-07 05:46:46 |
21 | 2016-03-06 19:07:10 | Porsche_911_Carrera_4S_Cabrio | privat | Angebot | $41,500 | test | cabrio | 2004 | manuell | 320 | 911 | 150,000km | 4 | benzin | porsche | nein | 2016-03-06 00:00:00 | 0 | 65428 | 2016-04-05 23:46:19 |
22 | 2016-03-28 20:50:54 | MINI_Cooper_S_Cabrio | privat | Angebot | $25,450 | control | cabrio | 2015 | manuell | 184 | cooper | 10,000km | 1 | benzin | mini | nein | 2016-03-28 00:00:00 | 0 | 44789 | 2016-04-01 06:45:30 |
23 | 2016-03-10 19:55:34 | Peugeot_Boxer_2_2_HDi_120_Ps_9_Sitzer_inkl_Klima | privat | Angebot | $7,999 | control | bus | 2010 | manuell | 120 | NaN | 150,000km | 2 | diesel | peugeot | nein | 2016-03-10 00:00:00 | 0 | 30900 | 2016-03-17 08:45:17 |
24 | 2016-04-03 11:57:02 | BMW_535i_xDrive_Sport_Aut. | privat | Angebot | $48,500 | control | limousine | 2014 | automatik | 306 | 5er | 30,000km | 12 | benzin | bmw | nein | 2016-04-03 00:00:00 | 0 | 22547 | 2016-04-07 13:16:50 |
25 | 2016-03-21 21:56:18 | Ford_escort_kombi_an_bastler_mit_ghia_ausstattung | privat | Angebot | $90 | control | kombi | 1996 | manuell | 116 | NaN | 150,000km | 4 | benzin | ford | ja | 2016-03-21 00:00:00 | 0 | 27574 | 2016-04-01 05:16:49 |
26 | 2016-04-03 22:46:28 | Volkswagen_Polo_Fox | privat | Angebot | $777 | control | kleinwagen | 1992 | manuell | 54 | polo | 125,000km | 2 | benzin | volkswagen | nein | 2016-04-03 00:00:00 | 0 | 38110 | 2016-04-05 23:46:48 |
27 | 2016-03-27 18:45:01 | Hat_einer_Ahnung_mit_Ford_Galaxy_HILFE | privat | Angebot | $0 | control | NaN | 2005 | NaN | 0 | NaN | 150,000km | 0 | NaN | ford | NaN | 2016-03-27 00:00:00 | 0 | 66701 | 2016-03-27 18:45:01 |
28 | 2016-03-19 21:56:19 | MINI_Cooper_D | privat | Angebot | $5,250 | control | kleinwagen | 2007 | manuell | 110 | cooper | 150,000km | 7 | diesel | mini | ja | 2016-03-19 00:00:00 | 0 | 15745 | 2016-04-07 14:58:48 |
29 | 2016-04-02 12:45:44 | Mercedes_Benz_E_320_T_CDI_Avantgarde_DPF7_Sitz... | privat | Angebot | $4,999 | test | kombi | 2004 | automatik | 204 | e_klasse | 150,000km | 10 | diesel | mercedes_benz | nein | 2016-04-02 00:00:00 | 0 | 47638 | 2016-04-02 12:45:44 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
49970 | 2016-03-21 22:47:37 | c4_Grand_Picasso_mit_Automatik_Leder_Navi_Temp... | privat | Angebot | $15,800 | control | bus | 2010 | automatik | 136 | c4 | 60,000km | 4 | diesel | citroen | nein | 2016-03-21 00:00:00 | 0 | 14947 | 2016-04-07 04:17:34 |
49971 | 2016-03-29 14:54:12 | W.Lupo_1.0 | privat | Angebot | $950 | test | kleinwagen | 2001 | manuell | 50 | lupo | 150,000km | 4 | benzin | volkswagen | nein | 2016-03-29 00:00:00 | 0 | 65197 | 2016-03-29 20:41:51 |
49972 | 2016-03-26 22:25:23 | Mercedes_Benz_Vito_115_CDI_Extralang_Aut. | privat | Angebot | $3,300 | control | bus | 2004 | automatik | 150 | vito | 150,000km | 10 | diesel | mercedes_benz | ja | 2016-03-26 00:00:00 | 0 | 65326 | 2016-03-28 11:28:18 |
49973 | 2016-03-27 05:32:39 | Mercedes_Benz_SLK_200_Kompressor | privat | Angebot | $6,000 | control | cabrio | 2004 | manuell | 163 | slk | 150,000km | 11 | benzin | mercedes_benz | nein | 2016-03-27 00:00:00 | 0 | 53567 | 2016-03-27 08:25:24 |
49974 | 2016-03-20 10:52:31 | Golf_1_Cabrio_Tuev_Neu_viele_Extras_alles_eing... | privat | Angebot | $0 | control | cabrio | 1983 | manuell | 70 | golf | 150,000km | 2 | benzin | volkswagen | nein | 2016-03-20 00:00:00 | 0 | 8209 | 2016-03-27 19:48:16 |
49975 | 2016-03-27 20:51:39 | Honda_Jazz_1.3_DSi_i_VTEC_IMA_CVT_Comfort | privat | Angebot | $9,700 | control | kleinwagen | 2012 | automatik | 88 | jazz | 100,000km | 11 | hybrid | honda | nein | 2016-03-27 00:00:00 | 0 | 84385 | 2016-04-05 19:45:34 |
49976 | 2016-03-19 18:56:05 | Audi_80_Avant_2.6_E__Vollausstattung!!_Einziga... | privat | Angebot | $5,900 | test | kombi | 1992 | automatik | 150 | 80 | 150,000km | 12 | benzin | audi | nein | 2016-03-19 00:00:00 | 0 | 36100 | 2016-04-07 06:16:44 |
49977 | 2016-03-31 18:37:18 | Mercedes_Benz_C200_Cdi_W203 | privat | Angebot | $5,500 | control | limousine | 2003 | manuell | 116 | c_klasse | 150,000km | 2 | diesel | mercedes_benz | nein | 2016-03-31 00:00:00 | 0 | 33739 | 2016-04-06 12:16:11 |
49978 | 2016-04-04 10:37:14 | Mercedes_Benz_E_200_Classic | privat | Angebot | $900 | control | limousine | 1996 | automatik | 136 | e_klasse | 150,000km | 9 | benzin | mercedes_benz | ja | 2016-04-04 00:00:00 | 0 | 24405 | 2016-04-06 12:44:20 |
49979 | 2016-03-20 18:38:40 | Volkswagen_Polo_1.6_TDI_Style | privat | Angebot | $11,000 | test | kleinwagen | 2011 | manuell | 90 | polo | 70,000km | 11 | diesel | volkswagen | nein | 2016-03-20 00:00:00 | 0 | 48455 | 2016-04-07 01:45:12 |
49980 | 2016-03-12 10:55:54 | Ford_Escort_Turnier_16V | privat | Angebot | $400 | control | kombi | 1995 | manuell | 105 | escort | 125,000km | 3 | benzin | ford | NaN | 2016-03-12 00:00:00 | 0 | 56218 | 2016-04-06 17:16:49 |
49981 | 2016-03-15 09:38:21 | Opel_Astra_Kombi_mit_Anhaengerkupplung | privat | Angebot | $2,000 | control | kombi | 1998 | manuell | 115 | astra | 150,000km | 12 | benzin | opel | nein | 2016-03-15 00:00:00 | 0 | 86859 | 2016-04-05 17:21:46 |
49982 | 2016-03-29 18:51:08 | Skoda_Fabia_4_Tuerer_Bj:2004__85.000Tkm | privat | Angebot | $1,950 | control | kleinwagen | 2004 | manuell | 0 | fabia | 90,000km | 7 | benzin | skoda | NaN | 2016-03-29 00:00:00 | 0 | 45884 | 2016-03-29 18:51:08 |
49983 | 2016-03-06 12:43:04 | Ford_focus_99 | privat | Angebot | $600 | test | kleinwagen | 1999 | manuell | 101 | focus | 150,000km | 4 | benzin | ford | NaN | 2016-03-06 00:00:00 | 0 | 52477 | 2016-03-09 06:16:08 |
49984 | 2016-03-31 22:48:48 | Student_sucht_ein__Anfaengerauto___ab_2000_BJ_... | privat | Angebot | $0 | test | NaN | 2000 | NaN | 0 | NaN | 150,000km | 0 | NaN | sonstige_autos | NaN | 2016-03-31 00:00:00 | 0 | 12103 | 2016-04-02 19:44:53 |
49985 | 2016-04-02 16:38:23 | Verkaufe_meinen_vw_vento! | privat | Angebot | $1,000 | control | NaN | 1995 | automatik | 0 | NaN | 150,000km | 0 | benzin | volkswagen | NaN | 2016-04-02 00:00:00 | 0 | 30900 | 2016-04-06 15:17:52 |
49986 | 2016-04-04 20:46:02 | Chrysler_300C_3.0_CRD_DPF_Automatik_Voll_Ausst... | privat | Angebot | $15,900 | control | limousine | 2010 | automatik | 218 | 300c | 125,000km | 11 | diesel | chrysler | nein | 2016-04-04 00:00:00 | 0 | 73527 | 2016-04-06 23:16:00 |
49987 | 2016-03-22 20:47:27 | Audi_A3_Limousine_2.0_TDI_DPF_Ambition__NAVI__... | privat | Angebot | $21,990 | control | limousine | 2013 | manuell | 150 | a3 | 50,000km | 11 | diesel | audi | nein | 2016-03-22 00:00:00 | 0 | 94362 | 2016-03-26 22:46:06 |
49988 | 2016-03-28 19:49:51 | BMW_330_Ci | privat | Angebot | $9,550 | control | coupe | 2001 | manuell | 231 | 3er | 150,000km | 10 | benzin | bmw | nein | 2016-03-28 00:00:00 | 0 | 83646 | 2016-04-07 02:17:40 |
49989 | 2016-03-11 19:50:37 | VW_Polo_zum_Ausschlachten_oder_Wiederaufbau | privat | Angebot | $150 | test | kleinwagen | 1997 | manuell | 0 | polo | 150,000km | 5 | benzin | volkswagen | ja | 2016-03-11 00:00:00 | 0 | 21244 | 2016-03-12 10:17:55 |
49990 | 2016-03-21 19:54:19 | Mercedes_Benz_A_200__BlueEFFICIENCY__Urban | privat | Angebot | $17,500 | test | limousine | 2012 | manuell | 156 | a_klasse | 30,000km | 12 | benzin | mercedes_benz | nein | 2016-03-21 00:00:00 | 0 | 58239 | 2016-04-06 22:46:57 |
49991 | 2016-03-06 15:25:19 | Kleinwagen | privat | Angebot | $500 | control | NaN | 2016 | manuell | 0 | twingo | 150,000km | 0 | benzin | renault | NaN | 2016-03-06 00:00:00 | 0 | 61350 | 2016-03-06 18:24:19 |
49992 | 2016-03-10 19:37:38 | Fiat_Grande_Punto_1.4_T_Jet_16V_Sport | privat | Angebot | $4,800 | control | kleinwagen | 2009 | manuell | 120 | andere | 125,000km | 9 | lpg | fiat | nein | 2016-03-10 00:00:00 | 0 | 68642 | 2016-03-13 01:44:51 |
49993 | 2016-03-15 18:47:35 | Audi_A3__1_8l__Silber;_schoenes_Fahrzeug | privat | Angebot | $1,650 | control | kleinwagen | 1997 | manuell | 0 | NaN | 150,000km | 7 | benzin | audi | NaN | 2016-03-15 00:00:00 | 0 | 65203 | 2016-04-06 19:46:53 |
49994 | 2016-03-22 17:36:42 | Audi_A6__S6__Avant_4.2_quattro_eventuell_Tausc... | privat | Angebot | $5,000 | control | kombi | 2001 | automatik | 299 | a6 | 150,000km | 1 | benzin | audi | nein | 2016-03-22 00:00:00 | 0 | 46537 | 2016-04-06 08:16:39 |
49995 | 2016-03-27 14:38:19 | Audi_Q5_3.0_TDI_qu._S_tr.__Navi__Panorama__Xenon | privat | Angebot | $24,900 | control | limousine | 2011 | automatik | 239 | q5 | 100,000km | 1 | diesel | audi | nein | 2016-03-27 00:00:00 | 0 | 82131 | 2016-04-01 13:47:40 |
49996 | 2016-03-28 10:50:25 | Opel_Astra_F_Cabrio_Bertone_Edition___TÜV_neu+... | privat | Angebot | $1,980 | control | cabrio | 1996 | manuell | 75 | astra | 150,000km | 5 | benzin | opel | nein | 2016-03-28 00:00:00 | 0 | 44807 | 2016-04-02 14:18:02 |
49997 | 2016-04-02 14:44:48 | Fiat_500_C_1.2_Dualogic_Lounge | privat | Angebot | $13,200 | test | cabrio | 2014 | automatik | 69 | 500 | 5,000km | 11 | benzin | fiat | nein | 2016-04-02 00:00:00 | 0 | 73430 | 2016-04-04 11:47:27 |
49998 | 2016-03-08 19:25:42 | Audi_A3_2.0_TDI_Sportback_Ambition | privat | Angebot | $22,900 | control | kombi | 2013 | manuell | 150 | a3 | 40,000km | 11 | diesel | audi | nein | 2016-03-08 00:00:00 | 0 | 35683 | 2016-04-05 16:45:07 |
49999 | 2016-03-14 00:42:12 | Opel_Vectra_1.6_16V | privat | Angebot | $1,250 | control | limousine | 1996 | manuell | 101 | vectra | 150,000km | 1 | benzin | opel | nein | 2016-03-13 00:00:00 | 0 | 45897 | 2016-04-06 21:18:48 |
50000 rows × 20 columns
autos.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 50000 entries, 0 to 49999 Data columns (total 20 columns): dateCrawled 50000 non-null object name 50000 non-null object seller 50000 non-null object offerType 50000 non-null object price 50000 non-null object abtest 50000 non-null object vehicleType 44905 non-null object yearOfRegistration 50000 non-null int64 gearbox 47320 non-null object powerPS 50000 non-null int64 model 47242 non-null object odometer 50000 non-null object monthOfRegistration 50000 non-null int64 fuelType 45518 non-null object brand 50000 non-null object notRepairedDamage 40171 non-null object dateCreated 50000 non-null object nrOfPictures 50000 non-null int64 postalCode 50000 non-null int64 lastSeen 50000 non-null object dtypes: int64(5), object(15) memory usage: 7.6+ MB
autos.head(10)
dateCrawled | name | seller | offerType | price | abtest | vehicleType | yearOfRegistration | gearbox | powerPS | model | odometer | monthOfRegistration | fuelType | brand | notRepairedDamage | dateCreated | nrOfPictures | postalCode | lastSeen | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2016-03-26 17:47:46 | Peugeot_807_160_NAVTECH_ON_BOARD | privat | Angebot | $5,000 | control | bus | 2004 | manuell | 158 | andere | 150,000km | 3 | lpg | peugeot | nein | 2016-03-26 00:00:00 | 0 | 79588 | 2016-04-06 06:45:54 |
1 | 2016-04-04 13:38:56 | BMW_740i_4_4_Liter_HAMANN_UMBAU_Mega_Optik | privat | Angebot | $8,500 | control | limousine | 1997 | automatik | 286 | 7er | 150,000km | 6 | benzin | bmw | nein | 2016-04-04 00:00:00 | 0 | 71034 | 2016-04-06 14:45:08 |
2 | 2016-03-26 18:57:24 | Volkswagen_Golf_1.6_United | privat | Angebot | $8,990 | test | limousine | 2009 | manuell | 102 | golf | 70,000km | 7 | benzin | volkswagen | nein | 2016-03-26 00:00:00 | 0 | 35394 | 2016-04-06 20:15:37 |
3 | 2016-03-12 16:58:10 | Smart_smart_fortwo_coupe_softouch/F1/Klima/Pan... | privat | Angebot | $4,350 | control | kleinwagen | 2007 | automatik | 71 | fortwo | 70,000km | 6 | benzin | smart | nein | 2016-03-12 00:00:00 | 0 | 33729 | 2016-03-15 03:16:28 |
4 | 2016-04-01 14:38:50 | Ford_Focus_1_6_Benzin_TÜV_neu_ist_sehr_gepfleg... | privat | Angebot | $1,350 | test | kombi | 2003 | manuell | 0 | focus | 150,000km | 7 | benzin | ford | nein | 2016-04-01 00:00:00 | 0 | 39218 | 2016-04-01 14:38:50 |
5 | 2016-03-21 13:47:45 | Chrysler_Grand_Voyager_2.8_CRD_Aut.Limited_Sto... | privat | Angebot | $7,900 | test | bus | 2006 | automatik | 150 | voyager | 150,000km | 4 | diesel | chrysler | NaN | 2016-03-21 00:00:00 | 0 | 22962 | 2016-04-06 09:45:21 |
6 | 2016-03-20 17:55:21 | VW_Golf_III_GT_Special_Electronic_Green_Metall... | privat | Angebot | $300 | test | limousine | 1995 | manuell | 90 | golf | 150,000km | 8 | benzin | volkswagen | NaN | 2016-03-20 00:00:00 | 0 | 31535 | 2016-03-23 02:48:59 |
7 | 2016-03-16 18:55:19 | Golf_IV_1.9_TDI_90PS | privat | Angebot | $1,990 | control | limousine | 1998 | manuell | 90 | golf | 150,000km | 12 | diesel | volkswagen | nein | 2016-03-16 00:00:00 | 0 | 53474 | 2016-04-07 03:17:32 |
8 | 2016-03-22 16:51:34 | Seat_Arosa | privat | Angebot | $250 | test | NaN | 2000 | manuell | 0 | arosa | 150,000km | 10 | NaN | seat | nein | 2016-03-22 00:00:00 | 0 | 7426 | 2016-03-26 18:18:10 |
9 | 2016-03-16 13:47:02 | Renault_Megane_Scenic_1.6e_RT_Klimaanlage | privat | Angebot | $590 | control | bus | 1997 | manuell | 90 | megane | 150,000km | 7 | benzin | renault | nein | 2016-03-16 00:00:00 | 0 | 15749 | 2016-04-06 10:46:35 |
My observation:
DQ observation:
# Change names to a few columns:
autos.rename({'yearOfRegistration':'registration_year', 'monthOfRegistration':'registration_month', 'notRepairedDamage':'unrepaired_damage', 'dateCreated':'ad_created'}, axis = 1, inplace = True)
# Convert camelCasing to snake_casing in the rest of the columns
columns = autos.columns
new_columns = columns.str.replace('(?<!^)(?=[A-Z])', '_').str.lower()
autos.columns = new_columns
print(autos.columns)
Index(['date_crawled', 'name', 'seller', 'offer_type', 'price', 'abtest', 'vehicle_type', 'registration_year', 'gearbox', 'power_p_s', 'model', 'odometer', 'registration_month', 'fuel_type', 'brand', 'unrepaired_damage', 'ad_created', 'nr_of_pictures', 'postal_code', 'last_seen'], dtype='object')
autos.head()
date_crawled | name | seller | offer_type | price | abtest | vehicle_type | registration_year | gearbox | power_p_s | model | odometer | registration_month | fuel_type | brand | unrepaired_damage | ad_created | nr_of_pictures | postal_code | last_seen | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2016-03-26 17:47:46 | Peugeot_807_160_NAVTECH_ON_BOARD | privat | Angebot | $5,000 | control | bus | 2004 | manuell | 158 | andere | 150,000km | 3 | lpg | peugeot | nein | 2016-03-26 00:00:00 | 0 | 79588 | 2016-04-06 06:45:54 |
1 | 2016-04-04 13:38:56 | BMW_740i_4_4_Liter_HAMANN_UMBAU_Mega_Optik | privat | Angebot | $8,500 | control | limousine | 1997 | automatik | 286 | 7er | 150,000km | 6 | benzin | bmw | nein | 2016-04-04 00:00:00 | 0 | 71034 | 2016-04-06 14:45:08 |
2 | 2016-03-26 18:57:24 | Volkswagen_Golf_1.6_United | privat | Angebot | $8,990 | test | limousine | 2009 | manuell | 102 | golf | 70,000km | 7 | benzin | volkswagen | nein | 2016-03-26 00:00:00 | 0 | 35394 | 2016-04-06 20:15:37 |
3 | 2016-03-12 16:58:10 | Smart_smart_fortwo_coupe_softouch/F1/Klima/Pan... | privat | Angebot | $4,350 | control | kleinwagen | 2007 | automatik | 71 | fortwo | 70,000km | 6 | benzin | smart | nein | 2016-03-12 00:00:00 | 0 | 33729 | 2016-03-15 03:16:28 |
4 | 2016-04-01 14:38:50 | Ford_Focus_1_6_Benzin_TÜV_neu_ist_sehr_gepfleg... | privat | Angebot | $1,350 | test | kombi | 2003 | manuell | 0 | focus | 150,000km | 7 | benzin | ford | nein | 2016-04-01 00:00:00 | 0 | 39218 | 2016-04-01 14:38:50 |
Changes made so far:
# Take a look at the actual data
autos.describe(include = 'all') # Includes both numerical and non-numerical data
date_crawled | name | seller | offer_type | price | abtest | vehicle_type | registration_year | gearbox | power_p_s | model | odometer | registration_month | fuel_type | brand | unrepaired_damage | ad_created | nr_of_pictures | postal_code | last_seen | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 50000 | 50000 | 50000 | 50000 | 50000 | 50000 | 44905 | 50000.000000 | 47320 | 50000.000000 | 47242 | 50000 | 50000.000000 | 45518 | 50000 | 40171 | 50000 | 50000.0 | 50000.000000 | 50000 |
unique | 48213 | 38754 | 2 | 2 | 2357 | 2 | 8 | NaN | 2 | NaN | 245 | 13 | NaN | 7 | 40 | 2 | 76 | NaN | NaN | 39481 |
top | 2016-03-22 09:51:06 | Ford_Fiesta | privat | Angebot | $0 | test | limousine | NaN | manuell | NaN | golf | 150,000km | NaN | benzin | volkswagen | nein | 2016-04-03 00:00:00 | NaN | NaN | 2016-04-07 06:17:27 |
freq | 3 | 78 | 49999 | 49999 | 1421 | 25756 | 12859 | NaN | 36993 | NaN | 4024 | 32424 | NaN | 30107 | 10687 | 35232 | 1946 | NaN | NaN | 8 |
mean | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2005.073280 | NaN | 116.355920 | NaN | NaN | 5.723360 | NaN | NaN | NaN | NaN | 0.0 | 50813.627300 | NaN |
std | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 105.712813 | NaN | 209.216627 | NaN | NaN | 3.711984 | NaN | NaN | NaN | NaN | 0.0 | 25779.747957 | NaN |
min | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 1000.000000 | NaN | 0.000000 | NaN | NaN | 0.000000 | NaN | NaN | NaN | NaN | 0.0 | 1067.000000 | NaN |
25% | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 1999.000000 | NaN | 70.000000 | NaN | NaN | 3.000000 | NaN | NaN | NaN | NaN | 0.0 | 30451.000000 | NaN |
50% | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2003.000000 | NaN | 105.000000 | NaN | NaN | 6.000000 | NaN | NaN | NaN | NaN | 0.0 | 49577.000000 | NaN |
75% | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 2008.000000 | NaN | 150.000000 | NaN | NaN | 9.000000 | NaN | NaN | NaN | NaN | 0.0 | 71540.000000 | NaN |
max | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 9999.000000 | NaN | 17700.000000 | NaN | NaN | 12.000000 | NaN | NaN | NaN | NaN | 0.0 | 99998.000000 | NaN |
autos[autos['price'] == '$0' ]
date_crawled | name | seller | offer_type | price | abtest | vehicle_type | registration_year | gearbox | power_p_s | model | odometer | registration_month | fuel_type | brand | unrepaired_damage | ad_created | nr_of_pictures | postal_code | last_seen | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
27 | 2016-03-27 18:45:01 | Hat_einer_Ahnung_mit_Ford_Galaxy_HILFE | privat | Angebot | $0 | control | NaN | 2005 | NaN | 0 | NaN | 150,000km | 0 | NaN | ford | NaN | 2016-03-27 00:00:00 | 0 | 66701 | 2016-03-27 18:45:01 |
71 | 2016-03-28 19:39:35 | Suche_Opel_Astra_F__Corsa_oder_Kadett_E_mit_Re... | privat | Angebot | $0 | control | NaN | 1990 | manuell | 0 | NaN | 5,000km | 0 | benzin | opel | NaN | 2016-03-28 00:00:00 | 0 | 4552 | 2016-04-07 01:45:48 |
80 | 2016-03-09 15:57:57 | Nissan_Primera_Hatchback_1_6_16v_73_Kw___99Ps_... | privat | Angebot | $0 | control | coupe | 1999 | manuell | 99 | primera | 150,000km | 3 | benzin | nissan | ja | 2016-03-09 00:00:00 | 0 | 66903 | 2016-03-09 16:43:50 |
87 | 2016-03-29 23:37:22 | Bmw_520_e39_zum_ausschlachten | privat | Angebot | $0 | control | NaN | 2000 | NaN | 0 | 5er | 150,000km | 0 | NaN | bmw | NaN | 2016-03-29 00:00:00 | 0 | 82256 | 2016-04-06 21:18:15 |
99 | 2016-04-05 09:48:54 | Peugeot_207_CC___Cabrio_Bj_2011 | privat | Angebot | $0 | control | cabrio | 2011 | manuell | 0 | 2_reihe | 60,000km | 7 | diesel | peugeot | nein | 2016-04-05 00:00:00 | 0 | 99735 | 2016-04-07 12:17:34 |
118 | 2016-03-12 05:03:00 | VW_Sharan_V6_204_PS_Karosse_Rohkarosse_mit_Pap... | privat | Angebot | $0 | control | bus | 2001 | manuell | 204 | sharan | 150,000km | 7 | benzin | volkswagen | ja | 2016-03-12 00:00:00 | 0 | 15370 | 2016-03-12 21:44:23 |
146 | 2016-03-22 23:59:28 | Ford_Fiesta_rot | privat | Angebot | $0 | test | kleinwagen | 1996 | manuell | 75 | fiesta | 20,000km | 8 | benzin | ford | NaN | 2016-03-22 00:00:00 | 0 | 63069 | 2016-04-01 20:16:38 |
167 | 2016-04-02 19:43:45 | Suche_VW_Multivan_Innenausstattung_Set_oder_TE... | privat | Angebot | $0 | control | NaN | 2011 | NaN | 0 | transporter | 5,000km | 0 | NaN | volkswagen | NaN | 2016-04-02 00:00:00 | 0 | 64739 | 2016-04-06 19:45:08 |
180 | 2016-03-19 10:50:25 | Zu_verkaufen | privat | Angebot | $0 | test | NaN | 2016 | manuell | 98 | 3_reihe | 150,000km | 12 | benzin | mazda | ja | 2016-03-19 00:00:00 | 0 | 30966 | 2016-03-24 03:17:21 |
226 | 2016-03-25 23:52:12 | Porsche_911_S_Targa__67er_SWB | privat | Angebot | $0 | control | cabrio | 1967 | manuell | 160 | 911 | 5,000km | 12 | benzin | porsche | nein | 2016-03-25 00:00:00 | 0 | 44575 | 2016-04-05 14:46:39 |
234 | 2016-03-05 16:56:22 | Fiat_Punto_Sport | privat | Angebot | $0 | control | NaN | 2016 | NaN | 0 | punto | 150,000km | 0 | NaN | fiat | NaN | 2016-03-05 00:00:00 | 0 | 44789 | 2016-03-17 22:47:09 |
248 | 2016-03-08 22:57:53 | VW_Passat_zu_verkaufen | privat | Angebot | $0 | test | kombi | 1998 | manuell | 0 | passat | 150,000km | 10 | benzin | volkswagen | ja | 2016-03-08 00:00:00 | 0 | 34369 | 2016-03-29 16:16:18 |
259 | 2016-04-03 23:49:58 | guenstiges_Auto_/_auch_defekt | privat | Angebot | $0 | control | NaN | 2000 | NaN | 0 | NaN | 5,000km | 6 | NaN | sonstige_autos | NaN | 2016-04-03 00:00:00 | 0 | 89269 | 2016-04-06 07:16:22 |
301 | 2016-03-08 20:37:59 | Kaufe_alle_Autos_bietet_an | privat | Angebot | $0 | control | NaN | 1990 | NaN | 0 | NaN | 5,000km | 0 | NaN | sonstige_autos | NaN | 2016-03-08 00:00:00 | 0 | 13589 | 2016-04-05 18:44:43 |
323 | 2016-03-15 16:54:59 | W220_Unfallfahrzeug | privat | Angebot | $0 | control | limousine | 2001 | automatik | 224 | s_klasse | 150,000km | 8 | NaN | mercedes_benz | NaN | 2016-03-15 00:00:00 | 0 | 45475 | 2016-04-06 12:44:20 |
327 | 2016-04-03 13:49:21 | BMW_Cabrio_318i_/_BMW_318_tds_Touring | privat | Angebot | $0 | control | NaN | 2016 | manuell | 90 | 3er | 150,000km | 2 | diesel | bmw | NaN | 2016-04-03 00:00:00 | 0 | 39112 | 2016-04-05 12:46:23 |
347 | 2016-04-02 11:48:02 | Volvo_TP21__Sugga | privat | Angebot | $0 | test | suv | 1956 | NaN | 0 | andere | 100,000km | 0 | NaN | volvo | NaN | 2016-04-02 00:00:00 | 0 | 34414 | 2016-04-04 09:15:24 |
366 | 2016-03-21 20:36:25 | Ford_Escort_Express_75__LKW_Zulussung___Diesel... | privat | Angebot | $0 | control | NaN | 2000 | NaN | 0 | andere | 90,000km | 0 | diesel | ford | NaN | 2016-03-21 00:00:00 | 0 | 3130 | 2016-03-28 19:16:45 |
389 | 2016-03-08 11:38:52 | Vw_polo_classic | privat | Angebot | $0 | control | limousine | 1999 | manuell | 75 | NaN | 150,000km | 0 | NaN | volkswagen | NaN | 2016-03-08 00:00:00 | 0 | 14476 | 2016-03-14 09:16:30 |
418 | 2016-03-29 14:43:24 | Fiat_SCUDO_8_Sitzer_Bus__Diesel_JTD__80_KW | privat | Angebot | $0 | test | bus | 2003 | manuell | 80 | andere | 5,000km | 5 | diesel | fiat | nein | 2016-03-29 00:00:00 | 0 | 35315 | 2016-04-05 23:47:14 |
427 | 2016-03-12 11:44:47 | TOP_ZUSTAND_GrunePlakette_Euro4!!! | privat | Angebot | $0 | test | bus | 2005 | manuell | 101 | vivaro | 80,000km | 8 | diesel | opel | nein | 2016-03-12 00:00:00 | 0 | 93173 | 2016-03-12 11:44:47 |
430 | 2016-03-18 23:52:40 | Winterraeder_FORD | privat | Angebot | $0 | test | NaN | 2007 | NaN | 0 | focus | 5,000km | 0 | NaN | ford | NaN | 2016-03-18 00:00:00 | 0 | 40549 | 2016-03-19 06:47:06 |
449 | 2016-04-03 20:59:59 | Tausche_gegen_ein_smart. | privat | Angebot | $0 | test | limousine | 2001 | manuell | 120 | golf | 150,000km | 8 | benzin | volkswagen | nein | 2016-04-03 00:00:00 | 0 | 60439 | 2016-04-04 10:31:06 |
487 | 2016-03-14 21:41:36 | MAG_MICH_KEINER_HABEN_Opel_Omega_B_Caravan_2.0... | privat | Angebot | $0 | test | kombi | 1998 | manuell | 136 | omega | 150,000km | 8 | benzin | opel | ja | 2016-03-14 00:00:00 | 0 | 59320 | 2016-03-17 11:48:08 |
502 | 2016-03-25 23:55:24 | C32_AMG_C55_C43_w203 | privat | Angebot | $0 | control | kombi | 2001 | NaN | 354 | c_klasse | 150,000km | 0 | benzin | mercedes_benz | NaN | 2016-03-25 00:00:00 | 0 | 79112 | 2016-03-26 08:40:35 |
519 | 2016-03-28 08:53:58 | Verkaufe/Tausche_Seat_Inca__VW_Caddy__aus_2002... | privat | Angebot | $0 | test | andere | 2002 | manuell | 64 | andere | 150,000km | 2 | diesel | seat | nein | 2016-03-28 00:00:00 | 0 | 12627 | 2016-03-28 10:41:01 |
565 | 2016-03-20 20:49:36 | Tausche_Audi_S3_8p_gegen_Golf_VI_Gti_mit_xenon | privat | Angebot | $0 | test | NaN | 2016 | manuell | 330 | NaN | 150,000km | 9 | NaN | audi | nein | 2016-03-20 00:00:00 | 0 | 97488 | 2016-03-22 00:44:53 |
593 | 2016-04-01 21:44:15 | CLK_200__BRABUS_Optik | privat | Angebot | $0 | test | coupe | 1998 | manuell | 136 | clk | 150,000km | 1 | benzin | mercedes_benz | NaN | 2016-04-01 00:00:00 | 0 | 49191 | 2016-04-05 19:16:21 |
660 | 2016-03-29 21:44:40 | Opel_Corsa_B | privat | Angebot | $0 | test | kleinwagen | 1998 | manuell | 54 | corsa | 125,000km | 11 | benzin | opel | ja | 2016-03-29 00:00:00 | 0 | 24214 | 2016-04-06 07:46:43 |
661 | 2016-03-18 22:49:48 | Renault_Megane_Scenic_1.6_Tuev_12/17 | privat | Angebot | $0 | test | bus | 1999 | manuell | 0 | megane | 150,000km | 8 | benzin | renault | NaN | 2016-03-18 00:00:00 | 0 | 66346 | 2016-03-29 16:47:09 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
48882 | 2016-03-14 23:58:47 | SUCHE_AUTO | privat | Angebot | $0 | control | NaN | 2000 | NaN | 0 | NaN | 150,000km | 0 | NaN | sonstige_autos | NaN | 2016-03-14 00:00:00 | 0 | 97753 | 2016-03-30 23:47:43 |
48889 | 2016-04-01 10:50:52 | Audi_A4_____TueV_09.2016 | privat | Angebot | $0 | control | limousine | 1995 | manuell | 101 | a4 | 150,000km | 2 | benzin | audi | nein | 2016-04-01 00:00:00 | 0 | 86869 | 2016-04-07 07:46:02 |
48891 | 2016-03-20 22:50:14 | MB_E_220_CDI__TAUSCHEN_nur_SUV/GELÄNDEWAGEN | privat | Angebot | $0 | test | kombi | 2001 | automatik | 143 | e_klasse | 150,000km | 12 | diesel | mercedes_benz | ja | 2016-03-20 00:00:00 | 0 | 38442 | 2016-03-24 18:16:00 |
48982 | 2016-03-08 12:48:33 | Bmw_525D_Sport_Pro..Navi | privat | Angebot | $0 | test | limousine | 2010 | automatik | 204 | 5er | 150,000km | 10 | diesel | bmw | NaN | 2016-03-08 00:00:00 | 0 | 47805 | 2016-03-11 16:15:39 |
48985 | 2016-03-27 08:55:25 | Stockcar_Autos_Peugeot | privat | Angebot | $0 | test | NaN | 2007 | NaN | 60 | NaN | 5,000km | 0 | NaN | peugeot | NaN | 2016-03-27 00:00:00 | 0 | 17153 | 2016-04-07 05:17:18 |
49043 | 2016-03-07 11:48:55 | Opel_Vectra_B_Caravan | privat | Angebot | $0 | test | kombi | 1997 | manuell | 101 | NaN | 150,000km | 0 | benzin | opel | NaN | 2016-03-07 00:00:00 | 0 | 48429 | 2016-03-17 21:20:07 |
49082 | 2016-03-13 17:06:58 | Passat_35i_b4_in_candy_weiss_original_lack | privat | Angebot | $0 | test | limousine | 1996 | manuell | 90 | NaN | 150,000km | 6 | NaN | volkswagen | nein | 2016-03-13 00:00:00 | 0 | 35799 | 2016-04-04 06:45:30 |
49254 | 2016-03-21 10:49:57 | Corrado_G60_mit_2e_Motor | privat | Angebot | $0 | test | NaN | 1995 | manuell | 0 | NaN | 150,000km | 0 | benzin | volkswagen | NaN | 2016-03-21 00:00:00 | 0 | 53639 | 2016-03-22 15:18:35 |
49301 | 2016-03-20 20:52:40 | Golf_3_Variant_Kombi_1.8 | privat | Angebot | $0 | test | NaN | 2000 | NaN | 0 | NaN | 150,000km | 0 | NaN | volkswagen | NaN | 2016-03-20 00:00:00 | 0 | 4924 | 2016-03-30 15:17:15 |
49342 | 2016-03-09 20:47:01 | Audi_80_b4_S_Color_und_BMW_318ti_compact_Tausc... | privat | Angebot | $0 | test | NaN | 2017 | manuell | 90 | 80 | 150,000km | 10 | benzin | audi | ja | 2016-03-09 00:00:00 | 0 | 25853 | 2016-03-11 17:45:36 |
49350 | 2016-03-19 23:57:15 | Golf_II_Diesel | privat | Angebot | $0 | control | kleinwagen | 1991 | manuell | 54 | golf | 150,000km | 3 | diesel | volkswagen | nein | 2016-03-19 00:00:00 | 0 | 29664 | 2016-04-06 03:15:23 |
49404 | 2016-04-04 03:03:16 | Golf_2_BBS_LEDER_KW | privat | Angebot | $0 | control | limousine | 1989 | manuell | 90 | NaN | 150,000km | 3 | NaN | volkswagen | nein | 2016-04-04 00:00:00 | 0 | 52062 | 2016-04-06 08:45:25 |
49408 | 2016-03-30 20:57:06 | OPEL_ASTRA | privat | Angebot | $0 | control | NaN | 1995 | manuell | 60 | astra | 150,000km | 0 | benzin | opel | ja | 2016-03-30 00:00:00 | 0 | 27711 | 2016-04-05 11:46:06 |
49479 | 2016-04-01 23:55:01 | Tausch_mit_frischen_TÜV | privat | Angebot | $0 | control | limousine | 1995 | manuell | 101 | a4 | 150,000km | 5 | benzin | audi | nein | 2016-04-01 00:00:00 | 0 | 27753 | 2016-04-06 05:16:07 |
49496 | 2016-03-26 13:55:28 | Bmw_e39_520 | privat | Angebot | $0 | control | limousine | 1998 | manuell | 0 | NaN | 5,000km | 0 | NaN | bmw | NaN | 2016-03-26 00:00:00 | 0 | 26188 | 2016-03-26 13:55:28 |
49504 | 2016-03-13 19:42:57 | Meriva_Lpg_1_6_16v | privat | Angebot | $0 | control | bus | 2004 | manuell | 101 | meriva | 150,000km | 10 | lpg | opel | ja | 2016-03-13 00:00:00 | 0 | 27432 | 2016-03-19 13:16:57 |
49507 | 2016-03-16 17:38:32 | BMW_528i_E39_Schaltgetriebe_Unfall | privat | Angebot | $0 | control | limousine | 1998 | manuell | 193 | 5er | 150,000km | 0 | NaN | bmw | ja | 2016-03-16 00:00:00 | 0 | 25541 | 2016-03-30 08:47:38 |
49525 | 2016-03-09 17:59:02 | Bmw_e36_318_i_Limo_Ringtool_PS_Tuning | privat | Angebot | $0 | test | NaN | 2000 | NaN | 160 | 3er | 150,000km | 0 | NaN | bmw | NaN | 2016-03-09 00:00:00 | 0 | 66822 | 2016-03-15 04:45:26 |
49538 | 2016-03-14 10:55:27 | Golf_3_mit_Tuev_.....PREISWERT!!!! | privat | Angebot | $0 | control | limousine | 1998 | manuell | 60 | golf | 150,000km | 0 | benzin | volkswagen | nein | 2016-03-14 00:00:00 | 0 | 15345 | 2016-03-14 10:55:27 |
49551 | 2016-03-16 23:40:18 | Golf_IV_an_Bastler_zuverkaufen__reserviert_ | privat | Angebot | $0 | test | NaN | 2016 | manuell | 0 | NaN | 150,000km | 6 | diesel | volkswagen | nein | 2016-03-16 00:00:00 | 0 | 4275 | 2016-03-16 23:40:18 |
49614 | 2016-03-09 17:49:39 | Verkauf_meine__Audi__A3_.Gegen_tauschen_mit_Di... | privat | Angebot | $0 | test | NaN | 2016 | manuell | 101 | a3 | 150,000km | 0 | benzin | audi | nein | 2016-03-09 00:00:00 | 0 | 47051 | 2016-03-10 14:15:53 |
49739 | 2016-03-17 15:47:34 | Reparaturfaelligen_twingo | privat | Angebot | $0 | test | NaN | 2016 | manuell | 58 | twingo | 150,000km | 0 | benzin | renault | nein | 2016-03-17 00:00:00 | 0 | 27412 | 2016-03-17 15:47:34 |
49755 | 2016-04-02 13:46:23 | Mercedes_Benz_w202_unfaller | privat | Angebot | $0 | test | limousine | 1998 | manuell | 136 | c_klasse | 150,000km | 7 | benzin | mercedes_benz | NaN | 2016-04-02 00:00:00 | 0 | 99441 | 2016-04-02 13:46:23 |
49793 | 2016-03-05 14:58:49 | verkaufe_BMW_E_39 | privat | Angebot | $0 | control | kombi | 2000 | automatik | 183 | 5er | 150,000km | 1 | benzin | bmw | NaN | 2016-03-05 00:00:00 | 0 | 13125 | 2016-03-05 18:47:14 |
49880 | 2016-03-30 08:52:57 | E39_528i_an_Bastler | privat | Angebot | $0 | control | NaN | 2017 | manuell | 193 | 5er | 150,000km | 4 | NaN | bmw | ja | 2016-03-30 00:00:00 | 0 | 65468 | 2016-04-07 01:15:27 |
49884 | 2016-03-11 13:55:30 | Audi_a6_2.5l__Schnaeppchen_nur_heute | privat | Angebot | $0 | test | kombi | 1999 | manuell | 150 | a6 | 150,000km | 11 | diesel | audi | NaN | 2016-03-11 00:00:00 | 0 | 27711 | 2016-03-12 03:17:08 |
49943 | 2016-03-16 20:46:08 | Opel_astra | privat | Angebot | $0 | control | NaN | 2016 | manuell | 101 | astra | 150,000km | 8 | benzin | opel | NaN | 2016-03-16 00:00:00 | 0 | 89134 | 2016-03-17 19:44:20 |
49960 | 2016-03-25 22:51:55 | Ford_KA_zu_verschenken_***Reserviert*** | privat | Angebot | $0 | control | kleinwagen | 1999 | manuell | 60 | ka | 150,000km | 6 | benzin | ford | NaN | 2016-03-25 00:00:00 | 0 | 34355 | 2016-03-25 22:51:55 |
49974 | 2016-03-20 10:52:31 | Golf_1_Cabrio_Tuev_Neu_viele_Extras_alles_eing... | privat | Angebot | $0 | control | cabrio | 1983 | manuell | 70 | golf | 150,000km | 2 | benzin | volkswagen | nein | 2016-03-20 00:00:00 | 0 | 8209 | 2016-03-27 19:48:16 |
49984 | 2016-03-31 22:48:48 | Student_sucht_ein__Anfaengerauto___ab_2000_BJ_... | privat | Angebot | $0 | test | NaN | 2000 | NaN | 0 | NaN | 150,000km | 0 | NaN | sonstige_autos | NaN | 2016-03-31 00:00:00 | 0 | 12103 | 2016-04-02 19:44:53 |
1421 rows × 20 columns
# Convert date_crawled column to datetime
autos['date_crawled'] = pd.to_datetime(autos['date_crawled'] )
most_recent = autos['date_crawled'].max()
least_recent = autos['date_crawled'].min()
print(most_recent, least_recent)
2016-04-07 14:36:56 2016-03-05 14:06:30
# Realistically registration year shouldn't be bigger than crawled date
autos[autos['registration_year']>2016].info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 1966 entries, 10 to 49935 Data columns (total 20 columns): date_crawled 1966 non-null datetime64[ns] name 1966 non-null object seller 1966 non-null object offer_type 1966 non-null object price 1966 non-null object abtest 1966 non-null object vehicle_type 2 non-null object registration_year 1966 non-null int64 gearbox 1715 non-null object power_p_s 1966 non-null int64 model 1680 non-null object odometer 1966 non-null object registration_month 1966 non-null int64 fuel_type 1215 non-null object brand 1966 non-null object unrepaired_damage 1129 non-null object ad_created 1966 non-null object nr_of_pictures 1966 non-null int64 postal_code 1966 non-null int64 last_seen 1966 non-null object dtypes: datetime64[ns](1), int64(5), object(14) memory usage: 322.5+ KB
autos['registration_month'].value_counts() # 5075 entires of unusual value month-0
0 5075 3 5071 6 4368 5 4107 4 4102 7 3949 10 3651 12 3447 9 3389 11 3360 1 3282 8 3191 2 3008 Name: registration_month, dtype: int64
autos['nr_of_pictures'].value_counts() # This columns can be dropped with all zeros
0 50000 Name: nr_of_pictures, dtype: int64
autos['postal_code']
0 79588 1 71034 2 35394 3 33729 4 39218 5 22962 6 31535 7 53474 8 7426 9 15749 10 86157 11 17498 12 34590 13 12043 14 81737 15 61276 16 57299 17 74821 18 54329 19 40878 20 53913 21 65428 22 44789 23 30900 24 22547 25 27574 26 38110 27 66701 28 15745 29 47638 ... 49970 14947 49971 65197 49972 65326 49973 53567 49974 8209 49975 84385 49976 36100 49977 33739 49978 24405 49979 48455 49980 56218 49981 86859 49982 45884 49983 52477 49984 12103 49985 30900 49986 73527 49987 94362 49988 83646 49989 21244 49990 58239 49991 61350 49992 68642 49993 65203 49994 46537 49995 82131 49996 44807 49997 73430 49998 35683 49999 45897 Name: postal_code, Length: 50000, dtype: int64
autos.loc[autos['postal_code'] < 1e4, 'postal_code']
8 7426 40 6780 54 6886 60 1665 71 4552 79 4157 150 1259 215 6628 313 6571 361 6628 365 1259 366 3130 375 4610 393 9111 395 6886 396 2828 403 7318 415 6114 428 6258 446 1594 453 7545 464 6842 484 4316 524 1920 533 3229 539 6712 590 4317 612 6679 617 6712 648 2994 ... 49171 9456 49173 1968 49213 9669 49228 1445 49235 9322 49251 1159 49278 4758 49301 4924 49304 2906 49306 4626 49365 7819 49393 7548 49410 6120 49414 6130 49465 7330 49473 3042 49480 1157 49551 4275 49581 1594 49609 1768 49632 6844 49698 9366 49743 8141 49748 8066 49789 4639 49822 2692 49906 7743 49925 4316 49944 4105 49974 8209 Name: postal_code, Length: 2428, dtype: int64
autos.loc[autos['postal_code'] < 1e4, 'postal_code'].count()
# 2428 entries with 4 digits postal code
2428
# Convert non-numerical columns 'price' into numerical columns
autos['price']
0 $5,000 1 $8,500 2 $8,990 3 $4,350 4 $1,350 5 $7,900 6 $300 7 $1,990 8 $250 9 $590 10 $999 11 $350 12 $5,299 13 $1,350 14 $3,999 15 $18,900 16 $350 17 $5,500 18 $300 19 $4,150 20 $3,500 21 $41,500 22 $25,450 23 $7,999 24 $48,500 25 $90 26 $777 27 $0 28 $5,250 29 $4,999 ... 49970 $15,800 49971 $950 49972 $3,300 49973 $6,000 49974 $0 49975 $9,700 49976 $5,900 49977 $5,500 49978 $900 49979 $11,000 49980 $400 49981 $2,000 49982 $1,950 49983 $600 49984 $0 49985 $1,000 49986 $15,900 49987 $21,990 49988 $9,550 49989 $150 49990 $17,500 49991 $500 49992 $4,800 49993 $1,650 49994 $5,000 49995 $24,900 49996 $1,980 49997 $13,200 49998 $22,900 49999 $1,250 Name: price, Length: 50000, dtype: object
autos['price'] = autos['price'].str.replace('\D', '') # Remove all non-digits(/D)
autos['price'] = autos['price'].astype(int) # Digitize
autos['price'].dtypes
dtype('int64')
# Convert non-numerical columns 'odometer' into numerical columns
autos['odometer']
0 150,000km 1 150,000km 2 70,000km 3 70,000km 4 150,000km 5 150,000km 6 150,000km 7 150,000km 8 150,000km 9 150,000km 10 150,000km 11 150,000km 12 50,000km 13 150,000km 14 150,000km 15 80,000km 16 150,000km 17 150,000km 18 150,000km 19 150,000km 20 150,000km 21 150,000km 22 10,000km 23 150,000km 24 30,000km 25 150,000km 26 125,000km 27 150,000km 28 150,000km 29 150,000km ... 49970 60,000km 49971 150,000km 49972 150,000km 49973 150,000km 49974 150,000km 49975 100,000km 49976 150,000km 49977 150,000km 49978 150,000km 49979 70,000km 49980 125,000km 49981 150,000km 49982 90,000km 49983 150,000km 49984 150,000km 49985 150,000km 49986 125,000km 49987 50,000km 49988 150,000km 49989 150,000km 49990 30,000km 49991 150,000km 49992 125,000km 49993 150,000km 49994 150,000km 49995 100,000km 49996 150,000km 49997 5,000km 49998 40,000km 49999 150,000km Name: odometer, Length: 50000, dtype: object
autos['odometer'] = autos['odometer'].str.replace('\D', '')
autos['odometer'].astype(int)
0 150000 1 150000 2 70000 3 70000 4 150000 5 150000 6 150000 7 150000 8 150000 9 150000 10 150000 11 150000 12 50000 13 150000 14 150000 15 80000 16 150000 17 150000 18 150000 19 150000 20 150000 21 150000 22 10000 23 150000 24 30000 25 150000 26 125000 27 150000 28 150000 29 150000 ... 49970 60000 49971 150000 49972 150000 49973 150000 49974 150000 49975 100000 49976 150000 49977 150000 49978 150000 49979 70000 49980 125000 49981 150000 49982 90000 49983 150000 49984 150000 49985 150000 49986 125000 49987 50000 49988 150000 49989 150000 49990 30000 49991 150000 49992 125000 49993 150000 49994 150000 49995 100000 49996 150000 49997 5000 49998 40000 49999 150000 Name: odometer, Length: 50000, dtype: int64
autos.rename({'odometer':'odometer_km'}, inplace = True, axis = 1) # Rename 'odometer' column
autos.head()
date_crawled | name | seller | offer_type | price | abtest | vehicle_type | registration_year | gearbox | power_p_s | model | odometer_km | registration_month | fuel_type | brand | unrepaired_damage | ad_created | nr_of_pictures | postal_code | last_seen | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2016-03-26 17:47:46 | Peugeot_807_160_NAVTECH_ON_BOARD | privat | Angebot | 5000 | control | bus | 2004 | manuell | 158 | andere | 150000 | 3 | lpg | peugeot | nein | 2016-03-26 00:00:00 | 0 | 79588 | 2016-04-06 06:45:54 |
1 | 2016-04-04 13:38:56 | BMW_740i_4_4_Liter_HAMANN_UMBAU_Mega_Optik | privat | Angebot | 8500 | control | limousine | 1997 | automatik | 286 | 7er | 150000 | 6 | benzin | bmw | nein | 2016-04-04 00:00:00 | 0 | 71034 | 2016-04-06 14:45:08 |
2 | 2016-03-26 18:57:24 | Volkswagen_Golf_1.6_United | privat | Angebot | 8990 | test | limousine | 2009 | manuell | 102 | golf | 70000 | 7 | benzin | volkswagen | nein | 2016-03-26 00:00:00 | 0 | 35394 | 2016-04-06 20:15:37 |
3 | 2016-03-12 16:58:10 | Smart_smart_fortwo_coupe_softouch/F1/Klima/Pan... | privat | Angebot | 4350 | control | kleinwagen | 2007 | automatik | 71 | fortwo | 70000 | 6 | benzin | smart | nein | 2016-03-12 00:00:00 | 0 | 33729 | 2016-03-15 03:16:28 |
4 | 2016-04-01 14:38:50 | Ford_Focus_1_6_Benzin_TÜV_neu_ist_sehr_gepfleg... | privat | Angebot | 1350 | test | kombi | 2003 | manuell | 0 | focus | 150000 | 7 | benzin | ford | nein | 2016-04-01 00:00:00 | 0 | 39218 | 2016-04-01 14:38:50 |
# Check out 'price' values, find&drop outliers
autos['price'].unique().shape , autos['odometer_km'].unique().shape
((2357,), (13,))
autos['price'].describe()
count 5.000000e+04 mean 9.840044e+03 std 4.811044e+05 min 0.000000e+00 25% 1.100000e+03 50% 2.950000e+03 75% 7.200000e+03 max 1.000000e+08 Name: price, dtype: float64
autos['price'].value_counts().sort_index(ascending = True).head(20)
0 1421 1 156 2 3 3 1 5 2 8 1 9 1 10 7 11 2 12 3 13 2 14 1 15 2 17 3 18 1 20 4 25 5 29 1 30 7 35 1 Name: price, dtype: int64
autos['price'].value_counts().sort_index(ascending = False).head(20)
99999999 1 27322222 1 12345678 3 11111111 2 10000000 1 3890000 1 1300000 1 1234566 1 999999 2 999990 1 350000 1 345000 1 299000 1 295000 1 265000 1 259000 1 250000 1 220000 1 198000 1 197000 1 Name: price, dtype: int64
autos.loc[(autos['price'] > 1000) & (autos['price'] < 60000), 'price'].count()
37862
# Drop all rows with a price outside of range 1000-600000
autos.drop(((autos[autos['price']<1000])|(autos[autos['price']>60000])).index, inplace = True)
autos.describe() # Showing only numerical columns without include = 'all' param
price | registration_year | power_p_s | registration_month | nr_of_pictures | postal_code | |
---|---|---|---|---|---|---|
count | 38504.000000 | 38504.000000 | 38504.000000 | 38504.000000 | 38504.0 | 38504.000000 |
mean | 6944.071395 | 2005.680033 | 128.222626 | 5.998208 | 0.0 | 51673.562565 |
std | 7240.796479 | 86.818848 | 215.733910 | 3.592504 | 0.0 | 25686.923356 |
min | 1000.000000 | 1000.000000 | 0.000000 | 0.000000 | 0.0 | 1067.000000 |
25% | 2200.000000 | 2001.000000 | 80.000000 | 3.000000 | 0.0 | 31198.000000 |
50% | 4300.000000 | 2005.000000 | 116.000000 | 6.000000 | 0.0 | 50827.000000 |
75% | 8900.000000 | 2009.000000 | 160.000000 | 9.000000 | 0.0 | 72517.000000 |
max | 60000.000000 | 9999.000000 | 17700.000000 | 12.000000 | 0.0 | 99998.000000 |
# Check out 'odometer_km' values, find&drop outliers
autos['odometer_km'].describe()
count 38504 unique 13 top 150000 freq 23306 Name: odometer_km, dtype: object
autos['odometer_km'].value_counts()
150000 23306 125000 4332 100000 1856 90000 1566 80000 1332 70000 1152 60000 1087 50000 980 40000 783 30000 728 20000 672 5000 492 10000 218 Name: odometer_km, dtype: int64
No outliers found for 'odometer_km' column
# 'date_crawled' was converted to type Datetime before
autos['date_crawled'].value_counts()[:10]
2016-04-04 16:40:33 3 2016-04-02 11:37:04 3 2016-03-23 19:38:20 3 2016-03-19 17:36:18 3 2016-03-09 11:54:38 3 2016-03-08 10:40:35 3 2016-03-29 23:42:13 3 2016-03-12 14:42:09 2 2016-04-01 14:49:35 2 2016-03-26 10:37:56 2 Name: date_crawled, dtype: int64
autos['date_crawled'].dt.date.value_counts(dropna = False, normalize = True).sort_index()
# Above returns the counts of date value counts in 'date_crawled' columns in percentage with ascending dates
# Series.dt.date
#Returns numpy array of python datetime.date objects (namely, the date part of Timestamps without timezone information).
2016-03-05 0.025530 2016-03-06 0.013895 2016-03-07 0.035113 2016-03-08 0.032620 2016-03-09 0.032516 2016-03-10 0.033399 2016-03-11 0.032776 2016-03-12 0.037425 2016-03-13 0.016050 2016-03-14 0.036646 2016-03-15 0.033607 2016-03-16 0.029062 2016-03-17 0.030464 2016-03-18 0.012804 2016-03-19 0.035191 2016-03-20 0.038178 2016-03-21 0.037269 2016-03-22 0.032490 2016-03-23 0.032178 2016-03-24 0.029036 2016-03-25 0.030542 2016-03-26 0.033113 2016-03-27 0.031347 2016-03-28 0.035373 2016-03-29 0.034022 2016-03-30 0.033062 2016-03-31 0.031399 2016-04-01 0.034568 2016-04-02 0.036282 2016-04-03 0.039113 2016-04-04 0.036827 2016-04-05 0.013323 2016-04-06 0.003272 2016-04-07 0.001506 Name: date_crawled, dtype: float64
This data is crawled between 2016/03/05 and 2016/04/07
*Note that this is not done as required because the 'date_crawled' column was converted from string to datetime in ealier data exploration. But the other two date related columns will be explored with mathods for string columns below.
autos['ad_created'].str[:10].value_counts(normalize = True, dropna = False).sort_index()
# Sorts the first 10 digits(date only) value counts in 'ad_created' column in ascending order with percentage
2015-06-11 0.000026 2015-08-10 0.000026 2015-09-09 0.000026 2015-11-10 0.000026 2015-12-30 0.000026 2016-01-03 0.000026 2016-01-07 0.000026 2016-01-10 0.000052 2016-01-13 0.000026 2016-01-14 0.000026 2016-01-16 0.000026 2016-01-22 0.000026 2016-01-27 0.000078 2016-01-29 0.000026 2016-02-01 0.000026 2016-02-02 0.000052 2016-02-05 0.000052 2016-02-07 0.000026 2016-02-09 0.000026 2016-02-11 0.000026 2016-02-12 0.000052 2016-02-14 0.000052 2016-02-16 0.000026 2016-02-17 0.000026 2016-02-18 0.000052 2016-02-19 0.000078 2016-02-20 0.000026 2016-02-21 0.000052 2016-02-22 0.000026 2016-02-23 0.000104 ... 2016-03-09 0.032724 2016-03-10 0.033062 2016-03-11 0.033036 2016-03-12 0.037165 2016-03-13 0.017712 2016-03-14 0.034957 2016-03-15 0.033451 2016-03-16 0.029633 2016-03-17 0.030127 2016-03-18 0.013271 2016-03-19 0.034126 2016-03-20 0.038282 2016-03-21 0.037555 2016-03-22 0.032282 2016-03-23 0.031919 2016-03-24 0.029036 2016-03-25 0.030698 2016-03-26 0.033191 2016-03-27 0.031218 2016-03-28 0.035425 2016-03-29 0.033996 2016-03-30 0.032932 2016-03-31 0.031555 2016-04-01 0.034412 2016-04-02 0.035944 2016-04-03 0.039399 2016-04-04 0.037269 2016-04-05 0.011947 2016-04-06 0.003376 2016-04-07 0.001325 Name: ad_created, Length: 74, dtype: float64
autos['ad_created'].str[:10].value_counts(normalize = True, dropna = False).max()
0.03939850405152712
autos['last_seen'].str[:10].value_counts(normalize = True, dropna = False).sort_index()
# Sorts the first 10 digits(date only) value counts in 'last_seen' column in ascending order with percentage
2016-03-05 0.001091 2016-03-06 0.003584 2016-03-07 0.004519 2016-03-08 0.006259 2016-03-09 0.008882 2016-03-10 0.009843 2016-03-11 0.011765 2016-03-12 0.022205 2016-03-13 0.008415 2016-03-14 0.012025 2016-03-15 0.015011 2016-03-16 0.015453 2016-03-17 0.026465 2016-03-18 0.007350 2016-03-19 0.014622 2016-03-20 0.019790 2016-03-21 0.019712 2016-03-22 0.020829 2016-03-23 0.017920 2016-03-24 0.018518 2016-03-25 0.017816 2016-03-26 0.016050 2016-03-27 0.014050 2016-03-28 0.019427 2016-03-29 0.020829 2016-03-30 0.023478 2016-03-31 0.022751 2016-04-01 0.023244 2016-04-02 0.024932 2016-04-03 0.024413 2016-04-04 0.023452 2016-04-05 0.130844 2016-04-06 0.234625 2016-04-07 0.139830 Name: last_seen, dtype: float64
autos['registration_year'].describe()
count 38504.000000 mean 2005.680033 std 86.818848 min 1000.000000 25% 2001.000000 50% 2005.000000 75% 2009.000000 max 9999.000000 Name: registration_year, dtype: float64
The 'registration_year' columns has been explored a little earlier. Realistically registration year shouldn't be bigger than crawled date or smaller than car invention.
autos['registration_year'].value_counts().sort_index()
1000 1 1001 1 1927 1 1929 1 1931 1 1934 2 1937 4 1938 1 1939 1 1941 2 1943 1 1948 1 1950 1 1951 1 1952 1 1953 1 1954 2 1955 1 1956 4 1957 2 1958 3 1959 6 1960 17 1961 6 1962 4 1963 7 1964 8 1965 17 1966 21 1967 25 ... 1999 1724 2000 2000 2001 2064 2002 2135 2003 2477 2004 2606 2005 2785 2006 2650 2007 2254 2008 2199 2009 2073 2010 1577 2011 1610 2012 1298 2013 780 2014 638 2015 343 2016 644 2017 1008 2018 396 2019 1 2800 1 4100 1 4500 1 5000 2 5911 1 6200 1 8888 1 9000 1 9999 2 Name: registration_year, Length: 91, dtype: int64
autos['registration_year'].describe()
count 38504.000000 mean 2005.680033 std 86.818848 min 1000.000000 25% 2001.000000 50% 2005.000000 75% 2009.000000 max 9999.000000 Name: registration_year, dtype: float64
autos.loc[autos['registration_year'] < 2017, 'registration_year'].describe()
# We are sure that any data out side of these 37088 entries are inaccurate because
# registration year can't be bigger than crawled date.
count 37088.000000 mean 2003.910267 std 10.153671 min 1000.000000 25% 2001.000000 50% 2005.000000 75% 2008.000000 max 2016.000000 Name: registration_year, dtype: float64
autos.loc[autos['registration_year'] < 1970, 'registration_year'].describe()
count 186.000000 mean 1951.693548 std 99.809915 min 1000.000000 25% 1960.000000 50% 1965.000000 75% 1967.000000 max 1969.000000 Name: registration_year, dtype: float64
After looking at amount of listings in the 1990s, year 1970 seems like a good begining year.
autos.loc[(autos['registration_year'] < 2017) & (autos['registration_year'] > 1970), 'registration_year'].describe()
count 36870.000000 mean 2004.203119 std 6.235416 min 1971.000000 25% 2001.000000 50% 2005.000000 75% 2008.000000 max 2016.000000 Name: registration_year, dtype: float64
Between year 1970-2016 inclusive, the remaining 36870 entries looks realistic.
autos.drop(autos.loc[(autos['registration_year'] > 2016) | (autos['registration_year'] < 1970)].index, inplace = True)
autos['registration_year'].value_counts(normalize = True)
2005 0.075470 2006 0.071812 2004 0.070619 2003 0.067124 2007 0.061081 2008 0.059590 2002 0.057856 2009 0.056176 2001 0.055932 2000 0.054198 1999 0.046718 2011 0.043629 2010 0.042735 2012 0.035174 1998 0.034659 1997 0.021245 2013 0.021137 2016 0.017452 2014 0.017289 1996 0.014633 1995 0.011951 2015 0.009295 1994 0.007344 1993 0.005880 1992 0.005853 1991 0.005582 1990 0.005067 1989 0.003333 1988 0.002845 1985 0.002141 1980 0.001897 1986 0.001518 1983 0.001355 1987 0.001355 1984 0.001274 1978 0.001111 1982 0.001030 1970 0.000867 1979 0.000840 1972 0.000813 1981 0.000705 1973 0.000623 1974 0.000623 1971 0.000596 1976 0.000569 1977 0.000515 1975 0.000488 Name: registration_year, dtype: float64
autos.drop(autos.loc[autos['registration_year'] < 1980].index, inplace = True)
autos['registration_year'].value_counts(normalize = True)
2005 0.076006 2006 0.072321 2004 0.071121 2003 0.067600 2007 0.061514 2008 0.060013 2002 0.058266 2009 0.056574 2001 0.056329 2000 0.054582 1999 0.047050 2011 0.043939 2010 0.043038 2012 0.035424 1998 0.034905 1997 0.021396 2013 0.021287 2016 0.017575 2014 0.017412 1996 0.014737 1995 0.012035 2015 0.009361 1994 0.007396 1993 0.005922 1992 0.005895 1991 0.005622 1990 0.005103 1989 0.003357 1988 0.002866 1985 0.002156 1980 0.001910 1986 0.001528 1983 0.001365 1987 0.001365 1984 0.001283 1982 0.001037 1981 0.000710 Name: registration_year, dtype: float64
autos['brand'].unique()
array(['peugeot', 'bmw', 'volkswagen', 'smart', 'ford', 'chrysler', 'audi', 'renault', 'sonstige_autos', 'mazda', 'porsche', 'mini', 'mercedes_benz', 'seat', 'toyota', 'opel', 'dacia', 'jeep', 'saab', 'volvo', 'nissan', 'jaguar', 'skoda', 'subaru', 'fiat', 'mitsubishi', 'chevrolet', 'hyundai', 'honda', 'kia', 'citroen', 'suzuki', 'land_rover', 'alfa_romeo', 'rover', 'trabant', 'daihatsu', 'daewoo', 'lancia', 'lada'], dtype=object)
autos['brand'].value_counts(normalize = True)
volkswagen 0.212325 bmw 0.126521 mercedes_benz 0.110829 audi 0.098739 opel 0.089460 ford 0.058103 renault 0.037716 peugeot 0.028301 fiat 0.020796 skoda 0.019295 seat 0.017548 smart 0.016866 toyota 0.014792 mazda 0.014464 citroen 0.013891 nissan 0.013837 mini 0.010998 hyundai 0.010916 volvo 0.008897 sonstige_autos 0.007969 kia 0.007805 honda 0.007423 mitsubishi 0.006987 chevrolet 0.006250 alfa_romeo 0.006113 suzuki 0.005813 porsche 0.005486 dacia 0.003330 chrysler 0.003138 jeep 0.002756 land_rover 0.002456 jaguar 0.001829 subaru 0.001747 daihatsu 0.001719 saab 0.001392 daewoo 0.000928 rover 0.000737 lancia 0.000655 trabant 0.000628 lada 0.000546 Name: brand, dtype: float64
autos['brand'].value_counts(normalize = True).head(20).sum()
0.9322635227334753
As explored above, the top 20 most common brands represents more than 90% of all listings, so doing aggregation on top20 brands would be a good representation.
top20_brands = autos['brand'].value_counts().head(20).index
top20_brands
Index(['volkswagen', 'bmw', 'mercedes_benz', 'audi', 'opel', 'ford', 'renault', 'peugeot', 'fiat', 'skoda', 'seat', 'smart', 'toyota', 'mazda', 'citroen', 'nissan', 'mini', 'hyundai', 'volvo', 'sonstige_autos'], dtype='object')
top20_brands_mean_price = {}
for b in top20_brands:
price_mean = autos.loc[autos['brand'] == b, 'price'].mean()
top20_brands_mean_price[b] = price_mean
top20_brands_mean_price
{'audi': 10116.68877833057, 'bmw': 8932.461820534943, 'citroen': 4493.8939096267195, 'fiat': 3923.968503937008, 'ford': 4908.70032879286, 'hyundai': 6181.8725, 'mazda': 5309.526415094339, 'mercedes_benz': 8890.42748091603, 'mini': 10724.992555831266, 'nissan': 6428.428007889546, 'opel': 4192.410921293472, 'peugeot': 3948.3760848601737, 'renault': 3514.8241678726486, 'seat': 5638.640746500778, 'skoda': 6841.9066478076375, 'smart': 3780.4692556634304, 'sonstige_autos': 11110.243150684932, 'toyota': 5567.477859778598, 'volkswagen': 6582.95, 'volvo': 6075.19018404908}
top20_brand_price = pd.DataFrame(data = [top20_brands_mean_price.values()], columns = top20_brands_mean_price.keys())
top20_brand_price = top20_brand_price.T # Transpose original df
top20_brand_price
0 | |
---|---|
volvo | 6075.190184 |
hyundai | 6181.872500 |
seat | 5638.640747 |
sonstige_autos | 11110.243151 |
bmw | 8932.461821 |
volkswagen | 6582.950000 |
audi | 10116.688778 |
mazda | 5309.526415 |
skoda | 6841.906648 |
smart | 3780.469256 |
fiat | 3923.968504 |
toyota | 5567.477860 |
nissan | 6428.428008 |
mercedes_benz | 8890.427481 |
opel | 4192.410921 |
mini | 10724.992556 |
citroen | 4493.893910 |
renault | 3514.824168 |
ford | 4908.700329 |
peugeot | 3948.376085 |
top20_brand_price.describe()
0 | |
---|---|
count | 20.000000 |
mean | 6358.172466 |
std | 2386.242367 |
min | 3514.824168 |
25% | 4418.523163 |
50% | 5856.915465 |
75% | 7354.036856 |
max | 11110.243151 |
top20_brand_price.sort_values(by = 0 , ascending=False) # Sort df by value
0 | |
---|---|
sonstige_autos | 11110.243151 |
mini | 10724.992556 |
audi | 10116.688778 |
bmw | 8932.461821 |
mercedes_benz | 8890.427481 |
skoda | 6841.906648 |
volkswagen | 6582.950000 |
nissan | 6428.428008 |
hyundai | 6181.872500 |
volvo | 6075.190184 |
seat | 5638.640747 |
toyota | 5567.477860 |
mazda | 5309.526415 |
ford | 4908.700329 |
citroen | 4493.893910 |
opel | 4192.410921 |
peugeot | 3948.376085 |
fiat | 3923.968504 |
smart | 3780.469256 |
renault | 3514.824168 |
As shown above, the average price between the top 20 brands is 6358, the cheapest brand is Renault with an average price 3514. The most expansive brand is Sonsitige_autos with an average price 11110.
top6_brand = autos['brand'].value_counts().head(6).index
top6_brand_avrprice_mileage = {}
for b in top6_brand:
price_mileage_mean = autos.loc[autos['brand'] == b, ['price', 'odometer_km']].mean()
top6_brand_avrprice_mileage[b] = price_mileage_mean
top6_brand_avrprice_mileage
# Odometer_km mean shouldn't be infinite
{'audi': price 1.011669e+04 odometer_km inf dtype: float64, 'bmw': price 8932.461821 odometer_km inf dtype: float64, 'ford': price 4908.700329 odometer_km inf dtype: float64, 'mercedes_benz': price 8890.427481 odometer_km inf dtype: float64, 'opel': price 4192.410921 odometer_km inf dtype: float64, 'volkswagen': price 6582.950000 odometer_km inf dtype: float64}
autos.loc[autos['brand'] == 'volkswagen', ['odometer_km']].dtypes # Debug: check out odometer_km dtypes
odometer_km object dtype: object
autos['odometer_km'] = autos['odometer_km'].astype(int) # Convert odometer_km from str to int
# Redo loop
for b in top6_brand:
price_mileage_mean = autos.loc[autos['brand'] == b, ['price', 'odometer_km']].mean()
top6_brand_avrprice_mileage[b] = price_mileage_mean
top6_brand_avrprice_mileage
{'audi': price 10116.688778 odometer_km 127787.451631 dtype: float64, 'bmw': price 8932.461821 odometer_km 132309.102675 dtype: float64, 'ford': price 4908.700329 odometer_km 120807.891029 dtype: float64, 'mercedes_benz': price 8890.427481 odometer_km 130667.323319 dtype: float64, 'opel': price 4192.410921 odometer_km 124385.295912 dtype: float64, 'volkswagen': price 6582.95 odometer_km 126000.00 dtype: float64}
top6_price_mileage = pd.DataFrame(top6_brand_avrprice_mileage)
top6_price_mileage = top6_price_mileage.T
top6_price_mileage.columns = ['mean_price', 'mean_mileage']
top6_price_mileage.sort_values(by = 'mean_price', ascending=False) # Sort by price high to low
mean_price | mean_mileage | |
---|---|---|
audi | 10116.688778 | 127787.451631 |
bmw | 8932.461821 | 132309.102675 |
mercedes_benz | 8890.427481 | 130667.323319 |
volkswagen | 6582.950000 | 126000.000000 |
ford | 4908.700329 | 120807.891029 |
opel | 4192.410921 | 124385.295912 |
top6_price_mileage.sort_values(by = 'mean_mileage') # Sort by mileage low to high
mean_price | mean_mileage | |
---|---|---|
ford | 4908.700329 | 120807.891029 |
opel | 4192.410921 | 124385.295912 |
volkswagen | 6582.950000 | 126000.000000 |
audi | 10116.688778 | 127787.451631 |
mercedes_benz | 8890.427481 | 130667.323319 |
bmw | 8932.461821 | 132309.102675 |
autos.head()
date_crawled | name | seller | offer_type | price | abtest | vehicle_type | registration_year | gearbox | power_p_s | model | odometer_km | registration_month | fuel_type | brand | unrepaired_damage | ad_created | nr_of_pictures | postal_code | last_seen | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2016-03-26 17:47:46 | Peugeot_807_160_NAVTECH_ON_BOARD | privat | Angebot | 5000 | control | bus | 2004 | manuell | 158 | andere | 150000 | 3 | lpg | peugeot | nein | 2016-03-26 00:00:00 | 0 | 79588 | 2016-04-06 06:45:54 |
1 | 2016-04-04 13:38:56 | BMW_740i_4_4_Liter_HAMANN_UMBAU_Mega_Optik | privat | Angebot | 8500 | control | limousine | 1997 | automatik | 286 | 7er | 150000 | 6 | benzin | bmw | nein | 2016-04-04 00:00:00 | 0 | 71034 | 2016-04-06 14:45:08 |
2 | 2016-03-26 18:57:24 | Volkswagen_Golf_1.6_United | privat | Angebot | 8990 | test | limousine | 2009 | manuell | 102 | golf | 70000 | 7 | benzin | volkswagen | nein | 2016-03-26 00:00:00 | 0 | 35394 | 2016-04-06 20:15:37 |
3 | 2016-03-12 16:58:10 | Smart_smart_fortwo_coupe_softouch/F1/Klima/Pan... | privat | Angebot | 4350 | control | kleinwagen | 2007 | automatik | 71 | fortwo | 70000 | 6 | benzin | smart | nein | 2016-03-12 00:00:00 | 0 | 33729 | 2016-03-15 03:16:28 |
4 | 2016-04-01 14:38:50 | Ford_Focus_1_6_Benzin_TÜV_neu_ist_sehr_gepfleg... | privat | Angebot | 1350 | test | kombi | 2003 | manuell | 0 | focus | 150000 | 7 | benzin | ford | nein | 2016-04-01 00:00:00 | 0 | 39218 | 2016-04-01 14:38:50 |
# Drop some of the columns that mostly has only one values: 'seller', 'offer_type', 'nr_of_picture'
autos.drop(['seller','offer_type','nr_of_pictures'], axis = 1, inplace = True)
autos.head()
date_crawled | name | price | abtest | vehicle_type | registration_year | gearbox | power_p_s | model | odometer_km | registration_month | fuel_type | brand | unrepaired_damage | ad_created | postal_code | last_seen | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2016-03-26 17:47:46 | Peugeot_807_160_NAVTECH_ON_BOARD | 5000 | control | bus | 2004 | manuell | 158 | andere | 150000 | 3 | lpg | peugeot | nein | 2016-03-26 00:00:00 | 79588 | 2016-04-06 06:45:54 |
1 | 2016-04-04 13:38:56 | BMW_740i_4_4_Liter_HAMANN_UMBAU_Mega_Optik | 8500 | control | limousine | 1997 | automatik | 286 | 7er | 150000 | 6 | benzin | bmw | nein | 2016-04-04 00:00:00 | 71034 | 2016-04-06 14:45:08 |
2 | 2016-03-26 18:57:24 | Volkswagen_Golf_1.6_United | 8990 | test | limousine | 2009 | manuell | 102 | golf | 70000 | 7 | benzin | volkswagen | nein | 2016-03-26 00:00:00 | 35394 | 2016-04-06 20:15:37 |
3 | 2016-03-12 16:58:10 | Smart_smart_fortwo_coupe_softouch/F1/Klima/Pan... | 4350 | control | kleinwagen | 2007 | automatik | 71 | fortwo | 70000 | 6 | benzin | smart | nein | 2016-03-12 00:00:00 | 33729 | 2016-03-15 03:16:28 |
4 | 2016-04-01 14:38:50 | Ford_Focus_1_6_Benzin_TÜV_neu_ist_sehr_gepfleg... | 1350 | test | kombi | 2003 | manuell | 0 | focus | 150000 | 7 | benzin | ford | nein | 2016-04-01 00:00:00 | 39218 | 2016-04-01 14:38:50 |
# Columns with german words: gearbox, fuel_type, unrepaired_damage
autos['gearbox'].value_counts()
manuell 26475 automatik 8954 Name: gearbox, dtype: int64
autos['gearbox'] = autos['gearbox'].str.replace('manuell', 'manual')
autos['gearbox'] = autos['gearbox'].str.replace('automatik', 'automatic')
autos['gearbox'].value_counts()
manual 26475 automatic 8954 Name: gearbox, dtype: int64
autos['fuel_type'].value_counts()
benzin 20885 diesel 13314 lpg 556 cng 59 hybrid 37 elektro 14 andere 7 Name: fuel_type, dtype: int64
autos['fuel_type'] = autos['fuel_type'].str.replace('benzin', 'gasoline')
autos['fuel_type'] = autos['fuel_type'].str.replace('elektro', 'electric')
autos['fuel_type'] = autos['fuel_type'].str.replace('andere', 'others')
autos['fuel_type'].value_counts()
gasoline 20885 diesel 13314 lpg 556 cng 59 hybrid 37 electric 14 others 7 Name: fuel_type, dtype: int64
autos['unrepaired_damage'].value_counts()
nein 29290 ja 2287 Name: unrepaired_damage, dtype: int64
autos['unrepaired_damage'] = autos['unrepaired_damage'].str.replace('nein', 'no')
autos['unrepaired_damage'] = autos['unrepaired_damage'].str.replace('ja', 'yes')
autos['unrepaired_damage'].value_counts()
no 29290 yes 2287 Name: unrepaired_damage, dtype: int64
# Convert dates to uniform numeric data.
#Columns: date_crawled, ad_created, last_seen
autos[['date_crawled', 'ad_created', 'last_seen']].dtypes # Checkout dtypes of the columns
date_crawled datetime64[ns] ad_created object last_seen object dtype: object
autos['date_crawled'] = autos['date_crawled'].astype(str) # Convert date_crawled back to str
autos['date_crawled'] = autos['date_crawled'].str[0:10]
autos['ad_created'] = autos['ad_created'].str[0:10]
autos['last_seen'] = autos['last_seen'].str[0:10]
autos[['date_crawled', 'ad_created', 'last_seen']].head()
date_crawled | ad_created | last_seen | |
---|---|---|---|
0 | 2016-03-26 | 2016-03-26 | 2016-04-06 |
1 | 2016-04-04 | 2016-04-04 | 2016-04-06 |
2 | 2016-03-26 | 2016-03-26 | 2016-04-06 |
3 | 2016-03-12 | 2016-03-12 | 2016-03-15 |
4 | 2016-04-01 | 2016-04-01 | 2016-04-01 |
autos['date_crawled'] = autos['date_crawled'].str.replace('-','').astype(int)
autos['ad_created'] = autos['ad_created'].str.replace('-','').astype(int)
autos['last_seen'] = autos['last_seen'].str.replace('-','').astype(int)
autos[['date_crawled', 'ad_created', 'last_seen']].head() , autos[['date_crawled', 'ad_created', 'last_seen']].dtypes
( date_crawled ad_created last_seen 0 20160326 20160326 20160406 1 20160404 20160404 20160406 2 20160326 20160326 20160406 3 20160312 20160312 20160315 4 20160401 20160401 20160401, date_crawled int64 ad_created int64 last_seen int64 dtype: object)
autos['name'].value_counts()
BMW_318i 67 BMW_320i 67 Volkswagen_Golf_1.4 58 BMW_316i 56 BMW_116i 53 Opel_Corsa_1.2_16V 53 Volkswagen_Polo 49 Volkswagen_Golf 48 Volkswagen_Polo_1.2 46 BMW_320d_DPF_Touring 37 Volkswagen_Golf_1.6 37 Volkswagen_Passat_Variant_1.9_TDI 35 BMW_520i 35 Audi_A4_Avant_2.0_TDI_DPF 34 Volkswagen_Golf_1.9_TDI 32 Opel_Corsa_1.0_12V 31 Peugeot_206 30 Renault_Twingo 28 MINI_Mini_One 28 MINI_Mini_Cooper 27 Ford_Fiesta 27 Volkswagen_Golf_1.4_Trendline 26 Opel_Astra_1.6 26 BMW_316ti_compact 26 BMW_118d_DPF 25 Opel_Astra 25 MINI_Mini_Cooper_S 24 Ford_Fiesta_1.3 24 Volkswagen_Beetle 24 BMW_320_Ci 24 .. Kia_Ceed_1.4_Edition_7_Garantie_2020_1A_Ausstattung 1 Mercedes_Benz_C_220_T_CDI_DPF_Automatik_Classic_Kombi_170PS 1 Volkswagen_Passat_2.0_TDI_DPF_DSG_Trendline 1 Volkswagen_Golf_6_GTD__+++_TÜV_Neu_+++ 1 BMW_330_d__Kombi__E46 1 Mercedes_CLS_320_CDI_Schwarz_Metallic 1 Opel_Corsa_12V_Edition_100_klima 1 Opel_Manta_A_Bj72 1 Volkswagen_Touran_1.9_TDI_DPF_Blue_Motion 1 Suzuki_Grand_Vitara_1.9_DDiS_X_30_DPF 1 Alufelgen_Klimatronic_8fach_Bereifung_4_Elk_Fensterheber 1 Peugeot_307_SW_/_neue_Kupplung_und_Bremsscheiben 1 Ford_C_MAX_1.6_TDCi_Start_Stop_System_SYNC_Edition 1 Volkswagen_Golf_6_GTI_DSG_Navi_Leder_18"_Rear_Assist 1 Opel_Corsa_D_1.2_16V..1_HAND..117000_km..5_TÜRER.. 1 MINI_One_Chili_red 1 Ford_Escort_Turnier_Kombi_mit_Anhaengerkupplung 1 C4_Coupe_gern_zum_Tausch_gg._Van/Kombi 1 Mercedes_A180_Urban_mit_Navi_und_Klima 1 Audi_80_B3_quattro 1 Verkaufe_vw_Touran_140_ps_high_line_Ausstattung 1 Peugeot_206_HDI_2_Tuerer 1 Ford_Galaxy_1_9Tdi_PTF_7_Sitzer 1 Opel_Tigra_Twin_Top_1.4_Easytronic_Automatik_PDC 1 BMW_316i_touring___M_Paket__Leder__GSHD__Sitzheizung 1 Ford_Transit_Connect__Lang__DPF 1 Fiat_500_C_1.3_16V_Lounge_Cabrio_Alu+Klimaauto. 1 Seat_Leon_aus_2.Hand_zu_verkaufen 1 BMW_118d__M1_Austattung 1 solider_Audi_100 1 Name: name, Length: 27976, dtype: int64
brand_model_combo = autos.groupby(['brand','model']).size().reset_index().rename(columns={0:'count'}).sort_values(by = 'count', ascending = False)
# referece: https://stackoverflow.com/questions/35268817/unique-combinations-of-values-in-selected-columns-in-pandas-data-frame-and-countz
# The most common brand/model combinations:
brand_model_combo.head()
brand | model | count | |
---|---|---|---|
263 | volkswagen | golf | 2916 |
23 | bmw | 3er | 2281 |
267 | volkswagen | passat | 1152 |
13 | audi | a4 | 1092 |
24 | bmw | 5er | 1064 |
autos['odometer_km'].describe()
count 36642.000000 mean 123203.018394 std 40325.343994 min 5000.000000 25% 100000.000000 50% 150000.000000 75% 150000.000000 max 150000.000000 Name: odometer_km, dtype: float64
autos['odometer_km'].value_counts()
150000 22214 125000 4129 100000 1763 90000 1497 80000 1271 70000 1096 60000 1030 50000 943 40000 750 30000 698 20000 642 5000 414 10000 195 Name: odometer_km, dtype: int64
# Judging from percentile of odometer_km, it's resonable to split it into below groups
odo_150 = autos[autos['odometer_km'] == 150000]
odo_125 = autos[autos['odometer_km'] == 125000]
odo_other = autos[autos['odometer_km'] <= 100000]
odo_150['price'].mean()
4791.420005401998
odo_125['price'].mean()
6958.977476386534
odo_other['price'].mean()
11658.297795902516
How much cheaper are cars with damage than their non-damaged counterparts?
# Find all damaged cars
damaged_cars = autos.loc[autos['unrepaired_damage'] == 'yes', ['name','price','unrepaired_damage']]
damaged_cars.head()
name | price | unrepaired_damage | |
---|---|---|---|
28 | MINI_Cooper_D | 5250 | yes |
51 | Mercedes_Benz_S_320_CDI | 6000 | yes |
81 | Nissan_Micra_K12___super_Kleinwagen! | 2000 | yes |
100 | Mazda_5_2.0_CD_DPF_Exclusive | 4500 | yes |
110 | Ford_Galaxy | 1300 | yes |
# Find all undamaged cars
undamaged_cars = autos.loc[autos['unrepaired_damage'] == 'no', ['name','price','unrepaired_damage']]
undamaged_cars.head()
name | price | unrepaired_damage | |
---|---|---|---|
0 | Peugeot_807_160_NAVTECH_ON_BOARD | 5000 | no |
1 | BMW_740i_4_4_Liter_HAMANN_UMBAU_Mega_Optik | 8500 | no |
2 | Volkswagen_Golf_1.6_United | 8990 | no |
3 | Smart_smart_fortwo_coupe_softouch/F1/Klima/Pan... | 4350 | no |
4 | Ford_Focus_1_6_Benzin_TÜV_neu_ist_sehr_gepfleg... | 1350 | no |
# Concatenate damaged cars and undamaged cars
price_damage_correlation = pd.concat([damaged_cars, undamaged_cars], axis = 0)
price_damage_correlation
name | price | unrepaired_damage | |
---|---|---|---|
28 | MINI_Cooper_D | 5250 | yes |
51 | Mercedes_Benz_S_320_CDI | 6000 | yes |
81 | Nissan_Micra_K12___super_Kleinwagen! | 2000 | yes |
100 | Mazda_5_2.0_CD_DPF_Exclusive | 4500 | yes |
110 | Ford_Galaxy | 1300 | yes |
115 | Audi_A3_1.8T_S_LINE_179_PS | 2300 | yes |
136 | 2_mal_Subaru_Libero_super_delux | 1499 | yes |
161 | Volkswagen_Touareg_3.0_V6_TDI_DPF | 11000 | yes |
182 | Renault_Megane_2.0_Coupe_Cabriolet_Aut._Privilege | 1790 | yes |
198 | Fiat_Ducato_Maxi_Lang_L5.___3_Liter_Motor_158_ps | 4200 | yes |
216 | Golf_4___1.6sr_Motor_zu_verkaufen | 1600 | yes |
279 | Opel_Corsa_1.0_12V | 1500 | yes |
352 | Ford_Focus_LPG_Turnier_1.6_16V_Titanium_DEFEKT | 1500 | yes |
377 | VW_Golf_5_Goal_Edition | 4700 | yes |
396 | 2_5_Liter_Caravelle_lang | 5500 | yes |
397 | Mercedes_Benz_A_170_CDI_Elegance | 1150 | yes |
422 | Mercedes_Benz_Sprinter | 4900 | yes |
428 | Audi_A3_98 | 1000 | yes |
431 | Seat_Ibiza_Rot | 1300 | yes |
432 | BMW_X6_xDrive35d | 23900 | yes |
440 | VW_Golf_4_1.6_4_Tuerer_HU_AU_sind_neu | 1000 | yes |
463 | Audi_A4_Avant_1.6 | 2000 | yes |
494 | Mazda_6__2.0Diesel | 1200 | yes |
506 | Kia_Carneval | 1800 | yes |
508 | Renault_Twingo_1.2_16V_Aut. | 1400 | yes |
572 | Volkswagen_Golf_Plus_1.9_TDI_United | 4000 | yes |
580 | BMW_520i | 1400 | yes |
695 | Volkswagen_Kastenwagen | 18000 | yes |
708 | Honda_Jazz_1_4__ES | 2700 | yes |
725 | VW_Polo_6N | 1111 | yes |
... | ... | ... | ... |
49947 | Audi_A5_2.7_TDI_+S_Line_Vollausstattung/ABT/B&... | 23600 | no |
49948 | Hyundai_ix35_2.0_CRDi_4WD_Automatik | 19900 | no |
49950 | Volvo_V70_2_II__2002__AHK__Klima__Volleder | 3099 | no |
49951 | Opel_Corsa_D1.0_weiss_/Scheckheftgepflegt/_Unf... | 3550 | no |
49952 | VW_POLO__9N3_Silber_1_2_Ltr._5_tuerer__96_tsd.... | 4300 | no |
49955 | Golf_1.9_TDI_DPF_4mot_GT_Sport | 3400 | no |
49956 | Toyota_Yaris_1.3_VVT_i_Executive_MODEL_2007 | 4450 | no |
49959 | Mercedes_Benz_C_180_T_Kompressor_Classic | 4200 | no |
49963 | Mercedes_Benz_B_200_CDI_Special_Edition | 7600 | no |
49965 | Opel_Astra_1.6_Lenkradheizung~Sitzheizung | 6700 | no |
49968 | Mercedes_Benz_190_D_2.5_Automatik | 2100 | no |
49969 | Nissan_X_Trail_2.2_dCi_4x4_Sport_m.AHZ | 4500 | no |
49970 | c4_Grand_Picasso_mit_Automatik_Leder_Navi_Temp... | 15800 | no |
49973 | Mercedes_Benz_SLK_200_Kompressor | 6000 | no |
49975 | Honda_Jazz_1.3_DSi_i_VTEC_IMA_CVT_Comfort | 9700 | no |
49976 | Audi_80_Avant_2.6_E__Vollausstattung!!_Einziga... | 5900 | no |
49977 | Mercedes_Benz_C200_Cdi_W203 | 5500 | no |
49979 | Volkswagen_Polo_1.6_TDI_Style | 11000 | no |
49981 | Opel_Astra_Kombi_mit_Anhaengerkupplung | 2000 | no |
49986 | Chrysler_300C_3.0_CRD_DPF_Automatik_Voll_Ausst... | 15900 | no |
49987 | Audi_A3_Limousine_2.0_TDI_DPF_Ambition__NAVI__... | 21990 | no |
49988 | BMW_330_Ci | 9550 | no |
49990 | Mercedes_Benz_A_200__BlueEFFICIENCY__Urban | 17500 | no |
49992 | Fiat_Grande_Punto_1.4_T_Jet_16V_Sport | 4800 | no |
49994 | Audi_A6__S6__Avant_4.2_quattro_eventuell_Tausc... | 5000 | no |
49995 | Audi_Q5_3.0_TDI_qu._S_tr.__Navi__Panorama__Xenon | 24900 | no |
49996 | Opel_Astra_F_Cabrio_Bertone_Edition___TÜV_neu+... | 1980 | no |
49997 | Fiat_500_C_1.2_Dualogic_Lounge | 13200 | no |
49998 | Audi_A3_2.0_TDI_Sportback_Ambition | 22900 | no |
49999 | Opel_Vectra_1.6_16V | 1250 | no |
31577 rows × 3 columns
# Use duplicated() with subset(), se keep=False to drop non-duplicated('name') rows(drop unique cars)
price_damage_correlation = price_damage_correlation[price_damage_correlation.duplicated(subset='name', keep=False)]
price_damage_correlation
name | price | unrepaired_damage | |
---|---|---|---|
28 | MINI_Cooper_D | 5250 | yes |
51 | Mercedes_Benz_S_320_CDI | 6000 | yes |
100 | Mazda_5_2.0_CD_DPF_Exclusive | 4500 | yes |
110 | Ford_Galaxy | 1300 | yes |
161 | Volkswagen_Touareg_3.0_V6_TDI_DPF | 11000 | yes |
279 | Opel_Corsa_1.0_12V | 1500 | yes |
397 | Mercedes_Benz_A_170_CDI_Elegance | 1150 | yes |
422 | Mercedes_Benz_Sprinter | 4900 | yes |
432 | BMW_X6_xDrive35d | 23900 | yes |
463 | Audi_A4_Avant_1.6 | 2000 | yes |
580 | BMW_520i | 1400 | yes |
725 | VW_Polo_6N | 1111 | yes |
777 | Seat_toledo_Unfall | 1300 | yes |
782 | Volkswagen_Golf_1.6_Automatik_Edition | 3350 | yes |
798 | BMW_325d_DPF_Touring | 6100 | yes |
883 | Renault_Megane_1.6_Grandtour | 1800 | yes |
1150 | Chevrolet_Aveo_1.2_LS | 1580 | yes |
1188 | Mercedes_A_Klasse | 1200 | yes |
1434 | Peugeot_807_HDi_130_Tendance | 1000 | yes |
1441 | Audi_A3_2.0_FSI | 6200 | yes |
1513 | Skoda_Fabia_1.2_HTP_Combi_Ambiente | 4400 | yes |
1621 | Audi_A3_1.4_TFSI_Sportback_Ambition | 8500 | yes |
1668 | Toyota_Aygo_Cool | 1850 | yes |
1681 | Mazda_5_2.0_CD_DPF_Exclusive | 2800 | yes |
1828 | Mercedes_Benz_V_220_CDI_Ambiente | 2800 | yes |
1862 | MG_MGF_1.8i | 1300 | yes |
1892 | Mercedes_Benz_ML_350_CDI_4Matic_7G_TRONIC_DPF | 15990 | yes |
1952 | Mercedes_Benz_E_350_CDI_DPF_BlueEFFICIENCY_7G_... | 15600 | yes |
1983 | Volkswagen_Golf_Variant_1.4_Comfortline | 3700 | yes |
1986 | Audi_A4_2.5_TDI | 3620 | yes |
... | ... | ... | ... |
49877 | Mercedes_Benz_C_200_T_Kompressor | 4550 | no |
49883 | BMW_316 | 1500 | no |
49893 | Mitsubishi_Pajero_3.2_DI_D_Automatik_Instyle | 19500 | no |
49894 | Mercedes_Benz_E_200_T_Classic | 1500 | no |
49897 | BMW_523i | 1890 | no |
49901 | MINI_Mini_One | 8300 | no |
49903 | Opel_Astra_1.7_CDTI_Caravan_DPF__119g__Edition... | 8250 | no |
49907 | Opel_Astra_1.4_ecoFLEX_Edition | 8250 | no |
49908 | Fiat_Panda_1.1_Active | 2900 | no |
49913 | Mercedes_Benz_C_200_Kompressor_Sportcoupe | 2500 | no |
49915 | Renault_Twingo_1.2 | 1700 | no |
49922 | Ford_Focus_2.0_16V_Titanium | 2888 | no |
49923 | Toyota_Yaris_1.0_VVT_i | 4500 | no |
49929 | Opel_Corsa_Swing | 1390 | no |
49930 | Opel_Insignia_2.0_CDTI_Sports_Tourer_Automatik... | 8900 | no |
49933 | Volkswagen_New_Beetle_1.9_TDI | 5500 | no |
49938 | Mercedes_Benz_A_160_Avantgarde | 2300 | no |
49939 | Audi_TT_Roadster_2.0_TFSI | 16995 | no |
49942 | Audi_A3_2.0_TDI_Sportback_DPF_Ambition | 10000 | no |
49945 | omega_2_2_facelift_mit_neuem_tuev | 1750 | no |
49948 | Hyundai_ix35_2.0_CRDi_4WD_Automatik | 19900 | no |
49955 | Golf_1.9_TDI_DPF_4mot_GT_Sport | 3400 | no |
49959 | Mercedes_Benz_C_180_T_Kompressor_Classic | 4200 | no |
49973 | Mercedes_Benz_SLK_200_Kompressor | 6000 | no |
49979 | Volkswagen_Polo_1.6_TDI_Style | 11000 | no |
49987 | Audi_A3_Limousine_2.0_TDI_DPF_Ambition__NAVI__... | 21990 | no |
49988 | BMW_330_Ci | 9550 | no |
49990 | Mercedes_Benz_A_200__BlueEFFICIENCY__Urban | 17500 | no |
49992 | Fiat_Grande_Punto_1.4_T_Jet_16V_Sport | 4800 | no |
49998 | Audi_A3_2.0_TDI_Sportback_Ambition | 22900 | no |
10857 rows × 3 columns
# Find indexis of cars with only one damage condition(only damaged or undamaged) and drop them
names = price_damage_correlation['name'].unique()
to_drop = []
target_ix = []
len(names)
2753
for n in names:
if price_damage_correlation.loc[price_damage_correlation['name'] == n, 'unrepaired_damage'].unique().size<2:
target_ix = price_damage_correlation[price_damage_correlation['name'] == n].index
to_drop.extend(target_ix)
to_drop
[777, 32299, 1150, 17480, 2962, 40745, 3603, 9062, 6197, 7091, 6880, 22871, 8972, 12253, 12265, 38927, 12282, 21384, 13343, 26378, 13411, 42664, 17613, 26221, 23743, 39647, 23987, 44379, 24979, 30033, 30618, 37723, 35590, 42217, 2, 12072, 14309, 30536, 22, 3966, 10533, 15847, 17183, 17191, 18708, 27906, 30679, 34553, 41232, 43743, 45468, 38, 9780, 24319, 29890, 37894, 47, 1820, 17686, 17898, 19325, 23874, 24099, 34101, 48047, 49, 48152, 54, 12699, 57, 357, 9027, 15616, 22138, 30955, 31596, 31705, 32611, 35052, 72, 20079, 30420, 48124, 91, 5628, 13833, 19566, 23724, 28006, 28375, 36198, 41210, 43708, 93, 29186, 104, 14522, 108, 4479, 39014, 43451, 49842, 109, 4370, 15261, 15757, 114, 11412, 14129, 23371, 28048, 44784, 116, 1364, 3820, 12913, 13791, 16192, 16206, 17884, 18215, 19064, 25885, 26935, 28414, 32633, 33158, 33915, 39259, 41988, 119, 26758, 122, 2125, 2484, 8246, 29613, 41062, 123, 5655, 35661, 128, 19664, 39413, 131, 7236, 34911, 36486, 43973, 150, 38822, 157, 31558, 162, 195, 10002, 28154, 43436, 168, 41113, 172, 13176, 178, 10721, 12582, 22362, 23152, 24576, 24802, 28123, 35565, 36062, 40231, 45291, 46015, 179, 43381, 205, 15512, 26398, 31947, 219, 38638, 46472, 220, 7570, 45675, 225, 9230, 36937, 229, 12937, 15162, 15315, 15946, 25286, 38325, 230, 9286, 44087, 232, 38062, 43263, 238, 10226, 17470, 19119, 20118, 243, 18787, 258, 23603, 47992, 260, 18634, 44526, 47924, 263, 534, 5442, 6270, 6519, 11380, 18863, 20385, 24069, 27891, 30394, 37912, 44752, 47393, 267, 846, 2762, 15619, 21028, 287, 28250, 293, 32302, 42157, 42940, 302, 6080, 6951, 7497, 12318, 13804, 17930, 19251, 21050, 25767, 30224, 30846, 34714, 34997, 37928, 38118, 43534, 45608, 46020, 305, 11490, 12321, 26802, 32860, 40410, 43576, 43626, 308, 1313, 3001, 26399, 33695, 48176, 310, 7409, 24619, 25100, 26318, 27006, 28673, 29592, 31312, 31748, 35841, 41268, 322, 25398, 336, 23332, 45990, 337, 2626, 3672, 20054, 25993, 33066, 36781, 340, 9283, 49519, 350, 9353, 356, 41316, 47944, 358, 12474, 363, 45730, 367, 33340, 34293, 39510, 375, 28814, 380, 5917, 22335, 36082, 381, 15558, 384, 2918, 394, 6008, 7116, 17479, 21496, 24066, 25129, 25637, 28978, 30646, 44925, 45556, 48558, 410, 4593, 5276, 8901, 9435, 28304, 30458, 37322, 38043, 444, 9618, 48269, 450, 1129, 4911, 5523, 30356, 46288, 460, 39671, 48791, 468, 11754, 15853, 35104, 469, 10549, 17277, 37775, 40965, 43057, 474, 33469, 484, 1287, 10706, 16022, 25316, 26940, 49084, 489, 4304, 6705, 8335, 9635, 10720, 26015, 491, 3536, 21042, 495, 9683, 10570, 503, 47979, 510, 11944, 517, 31248, 522, 3376, 9655, 18923, 28196, 31208, 531, 31676, 538, 5922, 38318, 544, 21666, 37964, 45228, 549, 25991, 27173, 39126, 553, 7944, 27651, 567, 27863, 36878, 569, 2346, 20208, 48523, 584, 3770, 7789, 17040, 25432, 27434, 28228, 29427, 37491, 45345, 49200, 607, 2394, 611, 9516, 10391, 15325, 19080, 22648, 35600, 48601, 623, 7897, 21072, 28644, 38300, 42063, 44839, 45798, 48520, 49913, 627, 22144, 26770, 638, 5951, 16800, 19759, 22492, 41833, 44020, 642, 11135, 644, 2222, 7577, 11257, 12394, 13472, 20223, 24148, 29526, 31568, 35900, 44605, 645, 2914, 11327, 43778, 648, 1376, 4080, 4343, 7585, 11060, 18391, 34797, 42856, 43048, 46157, 46440, 46943, 658, 5475, 663, 1514, 3728, 6292, 664, 21752, 669, 19037, 19732, 672, 30284, 678, 5351, 27475, 28106, 679, 23284, 37196, 38110, 39127, 40344, 684, 10522, 692, 8271, 41848, 703, 8843, 47574, 710, 15703, 33471, 716, 2349, 9659, 23769, 33646, 724, 27539, 729, 3893, 4531, 5162, 8240, 14353, 14640, 14725, 15987, 16018, 22715, 23992, 28839, 29498, 34443, 45207, 45868, 730, 7261, 743, 27745, 30248, 45404, 757, 1219, 4695, 22852, 28612, 768, 31258, 784, 14783, 23293, 23601, 25476, 25807, 39696, 785, 37495, 790, 33934, 792, 43148, 800, 36727, 803, 3180, 7249, 14861, 18889, 19752, 20026, 21688, 38965, 42032, 806, 30847, 37184, 814, 3658, 817, 49374, 832, 26442, 834, 35298, 845, 34135, 872, 3234, 7102, 25772, 28760, 47245, 873, 10016, 874, 40700, 879, 16744, 34372, 42485, 895, 37578, 900, 7429, 14222, 20017, 26635, 29695, 902, 28168, 925, 9558, 929, 44672, 930, 37715, 941, 9321, 9999, 15577, 18241, 34466, 957, 27757, 30109, 965, 28885, 970, 25050, 975, 2809, 21547, 31685, 984, 5159, 13503, 17790, 18485, 32019, 32760, 33647, 38589, 40480, 40880, 990, 19255, 1003, 23329, 28585, 44765, 1005, 1452, 10230, 25668, 26638, 30277, 41841, 1015, 25917, 1025, 12594, 1036, 27758, 45623, 1037, 7369, 10104, 11242, 16007, 26417, 45270, 47399, 1043, 26695, 30557, 36799, 1044, 11413, 14849, 15262, 22289, 44119, 48219, 1048, 17927, 1055, 45669, 1057, 2329, 8827, 1065, 3982, 5589, 6716, 16684, 21493, 35757, 42460, 45389, 1072, 46368, 1073, 5748, 6039, 11581, 17825, 18194, 29804, 30659, 33042, 34900, 37091, 38195, 39792, 45768, 1080, 23321, 24642, 33813, 41002, 1099, 25116, 44732, 1107, 44493, 1113, 28497, 1127, 10969, 1136, 24114, 1148, 4635, 8074, 8928, 11790, 36017, 49444, 1156, 2159, 8891, 10758, 16909, 21478, 33354, 42270, 1165, 41871, 43351, 46987, 49127, 1180, 8806, 13097, 20991, 25167, 1181, 11715, 32300, 1182, 7998, 8950, 12896, 13240, 23459, 35672, 38529, 1199, 15146, 43185, 45660, 1207, 34537, 47031, 1210, 32977, 1212, 16725, 1218, 28966, 33094, 1222, 14039, 46413, 1225, 2057, 8942, 11744, 14833, 21594, 25811, 30863, 35356, 1228, 17833, 23343, 1231, 28834, 1234, 3853, 9160, 16947, 32540, 1236, 1569, 3872, 4235, 4332, 4455, 13083, 18845, 21901, 36296, 36605, 36821, 39724, 40931, 1237, 9881, 47843, 1243, 1329, 1256, 33289, 1257, 22777, 44703, 1261, 11119, 1267, 45309, 1269, 13961, 18780, 28340, 32213, 36791, 37631, 48880, 1275, 40996, 1276, 5615, 27984, 1280, 33763, 1283, 41264, 1300, 5947, 13360, 1307, 14072, 1308, 1772, 7976, 15448, 22706, 24683, 1321, 4377, 24394, 1323, 33988, 1342, 26245, 1353, 11934, 21257, 1355, 13855, 1365, 10270, 11683, 11873, 19039, 36723, 1397, 1972, 1412, 6103, 8632, 9688, 15831, 25686, 26089, 37497, 40236, 41068, 41304, 1418, 21066, 1419, 3160, 23157, 1421, 43210, 1431, 8098, 26206, 30543, 34706, 40095, 41228, 43382, 1436, 25824, 34837, 36224, 45540, 1439, 2053, 6628, 6886, 8221, 24310, 46314, 1443, 23888, 1444, 3523, 24073, 1447, 20426, 37589, 41388, 1468, 11800, 13191, 31939, 42321, 1471, 7670, 1479, 3636, 38025, 39754, 40096, 1483, 18818, 1496, 11629, 34213, 37874, 1499, 5960, 16358, 1503, 43045, 1508, 49597, 1520, 33887, 1527, 3824, 5884, 24369, 37959, 1536, 27535, 35308, 1550, 43876, 1564, 15912, 49009, 1565, 3598, 7196, 25975, 26894, 26966, 41510, 48007, 1573, 33396, 37092, 41616, 1583, ...]
price_damage_correlation.drop(index = to_drop, axis = 0, inplace = True)
ValueErrorTraceback (most recent call last) <ipython-input-100-fffeaf79eea1> in <module>() ----> 1 price_damage_correlation.drop(index = to_drop, axis = 0, inplace = True) 2 price_damage_correlation /dataquest/system/env/python3/lib/python3.4/site-packages/pandas/core/generic.py in drop(self, labels, axis, index, columns, level, inplace, errors) 2528 for axis, labels in axes.items(): 2529 if labels is not None: -> 2530 obj = obj._drop_axis(labels, axis, level=level, errors=errors) 2531 2532 if inplace: /dataquest/system/env/python3/lib/python3.4/site-packages/pandas/core/generic.py in _drop_axis(self, labels, axis, level, errors) 2560 new_axis = axis.drop(labels, level=level, errors=errors) 2561 else: -> 2562 new_axis = axis.drop(labels, errors=errors) 2563 dropped = self.reindex(**{axis_name: new_axis}) 2564 try: /dataquest/system/env/python3/lib/python3.4/site-packages/pandas/core/indexes/base.py in drop(self, labels, errors) 3742 if errors != 'ignore': 3743 raise ValueError('labels %s not contained in axis' % -> 3744 labels[mask]) 3745 indexer = indexer[~mask] 3746 return self.delete(indexer) ValueError: labels [ 777 32299 1150 ... 48703 49147 49243] not contained in axis
# Compare mean of damaged and undamaged counterpart for each car
price_comparison = {}
compared_cars = price_damage_correlation['name'].unique()
target = None
damaged_mean = None
undamaged_mean = None
len(compared_cars)
531
for c in compared_cars:
target = price_damage_correlation[price_damage_correlation['name'] == c]
damaged_mean = target.loc[target['unrepaired_damage']=='yes', 'price'].mean()
undamaged_mean = target.loc[target['unrepaired_damage']=='no', 'price'].mean()
price_comparison[c] = undamaged_mean-damaged_mean
price_comparison
{'Alfa_Romeo_147_1.6_Twin_Spark_Distinctive': 383.79999999999995, 'Alfa_Romeo_156_2.0_JTS': -1700.0, 'Audi_80_Avant_2.6_E': 3900.0, 'Audi_A3': 2259.9285714285716, 'Audi_A3_1.4_TFSI_Sportback_Ambition': 5649.799999999999, 'Audi_A3_1.6_Ambiente': 752.5714285714284, 'Audi_A3_1.6_Sportback_Ambiente': 2766.333333333334, 'Audi_A3_1.8': 27.77777777777783, 'Audi_A3_1.8_Ambiente': 392.1666666666665, 'Audi_A3_1.8_Attraction': -650.0, 'Audi_A3_1.9_TDI': 917.375, 'Audi_A3_1.9_TDI_Ambiente': 2830.0, 'Audi_A3_1.9_TDI_DPF_Ambition': 1300.0, 'Audi_A3_1.9_TDI_DPF_Attraction': 1900.0, 'Audi_A3_2.0_FSI': -450.5, 'Audi_A3_2.0_FSI_Ambiente': 570.0, 'Audi_A3_2.0_FSI_Ambition': 1490.0, 'Audi_A3_2.0_TDI_DPF': 400.0, 'Audi_A3_2.0_TDI_Sportback_Ambition': 9116.666666666668, 'Audi_A4': 2097.6000000000004, 'Audi_A4_1.6': 1424.4545454545455, 'Audi_A4_1.8_T': 2762.7142857142853, 'Audi_A4_1.9_TDI': 1531.7272727272725, 'Audi_A4_2.0_TDI_DPF': 5097.5, 'Audi_A4_2.5_TDI': 1487.25, 'Audi_A4_Avant': 166.66666666666652, 'Audi_A4_Avant_1.6': 575.0, 'Audi_A4_Avant_1.9_TDI': 728.9545454545455, 'Audi_A4_Avant_1.9_TDI_DPF': 3583.333333333333, 'Audi_A4_Avant_1.9_TDI_quattro': 1020.0, 'Audi_A4_Avant_2.0': 2762.818181818182, 'Audi_A4_Avant_2.0_TDI_DPF': 2443.966666666667, 'Audi_A4_Avant_2.4': 3400.0, 'Audi_A4_Avant_2.4_quattro': 466.66666666666674, 'Audi_A4_Avant_2.5_TDI': 2396.818181818182, 'Audi_A4_Avant_2.5_TDI_quattro': 1895.5555555555557, 'Audi_A4_Avant_2.7_TDI_DPF': 4724.5, 'Audi_A4_Cabriolet_2.5_TDI': 3259.75, 'Audi_A5_Cabrio_3.0_TDI_DPF_quattro_S_tronic': -8214.333333333332, 'Audi_A6_2.0_TDI': 2000.0, 'Audi_A6_2.4': 543.333333333333, 'Audi_A6_2.5_TDI': 308.1666666666665, 'Audi_A6_2.7_TDI_DPF': 299.66666666666606, 'Audi_A6_2.8': 999.0, 'Audi_A6_3.0_TDI_quattro': 2813.0, 'Audi_A6_Allroad': -31.625, 'Audi_A6_Avant': -800.0, 'Audi_A6_Avant_1.8_T': 4490.0, 'Audi_A6_Avant_2.0_TDI': 8800.0, 'Audi_A6_Avant_2.4': -7127.076923076923, 'Audi_A6_Avant_2.4_multitronic': 5000.0, 'Audi_A6_Avant_2.4_quattro': 18800.0, 'Audi_A6_Avant_2.5_TDI': 1916.5238095238096, 'Audi_A6_Avant_2.7_TDI_DPF_multitronic': 3574.7999999999993, 'Audi_A6_Avant_2.7_TDI_tiptronic_DPF_quattro': 5229.799999999999, 'Audi_A6_Avant_2.7_TDI_tiptronic_quattro': 49.5, 'Audi_A6_Avant_2.7_T_quattro': 4526.666666666667, 'Audi_A6_Avant_3.0': 1500.0, 'Audi_A6_Avant_3.0_TDI_DPF_quattro_tiptronic': -1885.8125, 'Audi_A6_Avant_3.0_TDI_tiptronic_quattro': 5249.666666666666, 'Audi_A6_Avant_4.2_quattro': 175.0, 'Audi_A8_4.2_TDI_DPF_quattro': 1100.0, 'Audi_A8_4.2_quattro': 5933.166666666667, 'Audi_Q7_3.0_TDI_DPF_quattro_tiptronic': 12349.75, 'Audi_RS6_Avant': 6250.0, 'Audi_S4_Avant': 4174.75, 'Audi_S4_Avant_tiptronic': 7500.0, 'Audi_TT_Coupe_1.8_T_quattro': 760.0, 'Audi_TT_Coupe_3.2_quattro_DSG': 499.0, 'Auto_zu_verkaufen': -4000.0, 'BMW_116i': 2011.810606060606, 'BMW_118d': 1318.3999999999996, 'BMW_118d_DPF': 2816.195652173914, 'BMW_118i': 3476.545454545454, 'BMW_118i_Cabrio': 9128.900000000001, 'BMW_120d': 5590.666666666666, 'BMW_120d_DPF_Aut.': 3500.0, 'BMW_316i': 973.1666666666665, 'BMW_316i_Edition_Sport': 1566.666666666667, 'BMW_316ti_compact': 1019.1428571428573, 'BMW_318': 2000.0, 'BMW_318d_DPF_Touring': 4088.666666666666, 'BMW_318d_DPF_Touring_Aut.': 772.25, 'BMW_318i': 3756.4007936507933, 'BMW_318i_touring': 879.0833333333335, 'BMW_318ti_compact': -917.5, 'BMW_320_Ci': 4471.565217391304, 'BMW_320d': 2553.176470588235, 'BMW_320d_DPF': 1197.0, 'BMW_320d_DPF_Aut.': 1782.8571428571431, 'BMW_320d_touring': 2073.409090909091, 'BMW_320d_xDrive_DPF_Touring': 8501.0, 'BMW_320i': 1856.2239583333335, 'BMW_323i': 1300.5384615384614, 'BMW_323i_touring': 2450.0, 'BMW_325d_DPF_Aut.': 250.0, 'BMW_325d_DPF_Touring': 17400.0, 'BMW_325i': 1409.6875, 'BMW_325i_Coupe': 6001.0, 'BMW_328i': 3845.684210526316, 'BMW_328i_touring_Exclusiv_Edition': 600.0, 'BMW_520d': 11868.0, 'BMW_520i': 2087.3333333333335, 'BMW_520i_24V': -75.0, 'BMW_523i': 111.94736842105249, 'BMW_523i_touring': 1134.5, 'BMW_525d': 1641.2692307692305, 'BMW_525d_Aut.': -2364.357142857143, 'BMW_525d_Touring_Aut.': 7145.333333333334, 'BMW_525d_Touring_Aut._Edition_Exclusive': 9000.0, 'BMW_525d_touring': 1869.6999999999998, 'BMW_525i_Edition_Exclusive': 1350.0, 'BMW_525i_Touring_Facelift': 390.0, 'BMW_528i': 1578.2857142857142, 'BMW_530': 250.0, 'BMW_530d': 3352.7333333333327, 'BMW_530d_touring': -517.0, 'BMW_530d_touring_Vollausstattung_NAVI': 0.0, 'BMW_535d_Touring': 5100.0, 'BMW_728i': 4966.333333333333, 'BMW_730': -600.0, 'BMW_735i': -1950.0, 'BMW_740i': 2919.6000000000004, 'BMW_X3_2.0d': 344.89999999999964, 'BMW_X3_3.0d_Aut.': 2750.0, 'BMW_X3_xDrive20d_Aut.': 3566.666666666668, 'BMW_X5_3.0_i': 4650.0, 'BMW_X5_xDrive40d': 6082.666666666668, 'BMW_X6_xDrive35d': 23000.0, 'Chevrolet_Trans_Sport': 200.0, 'Citroën_2_CV_6_Club': 6450.0, 'Citroën_Berlingo_Multispace_1.4i_Plus': 1050.0, 'Citroën_Grand_C4_Picasso': -2237.5, 'Citroën_Saxo_1.1_SX': -150.0, 'Dacia_Duster_dCi_85_4x2_Ambiance': -2150.0, 'Fiat_500_1.2': -899.2857142857147, 'Fiat_Grande_Punto': 2368.5714285714284, 'Fiat_Grande_Punto_1.3_Multijet_16V_DPF_Dynamic': 2110.0, 'Fiat_Grande_Punto_1.4_8V_Dynamic': 1070.0, 'Fiat_Panda': 1234.75, 'Fiat_Panda_1.2': 1660.0, 'Fiat_Seicento_1.1': -36.75, 'Ford_C_Max': 842.5, 'Ford_Explorer': 2466.3333333333335, 'Ford_Fiesta': 1465.5666666666666, 'Ford_Fiesta_1.25': 782.0, 'Ford_Fiesta_1.3': -172.52380952380963, 'Ford_Fiesta_1.4': -2537.2, 'Ford_Fiesta_1.4_Ghia': -300.0, 'Ford_Fiesta_1.4_TDCI': 998.6666666666665, 'Ford_Fiesta_1.4_Titanium': 71.28571428571468, 'Ford_Focus': 1952.3529411764707, 'Ford_Focus_1.6_Futura': 1096.8000000000002, 'Ford_Focus_1.6_TDCi': 1349.5, 'Ford_Focus_2.0_16V_Titanium': 294.0, 'Ford_Focus_2.5_ST': -4821.0, 'Ford_Focus_Turnier_1.6_TDCi_DPF': -333.6666666666665, 'Ford_Focus_Turnier_1.6_TDCi_DPF_Ambiente': 3083.333333333333, 'Ford_Focus_Turnier_2.0_TDCi_DPF_Aut._Style': 2800.0, 'Ford_Focus_Turnier_Ghia': -250.0, 'Ford_Galaxy': -2704.5, 'Ford_Galaxy_TDI': 1306.125, 'Ford_Galaxy_TDI_Aut._Ghia': 2440.0, 'Ford_Ka_1.2_Trend': 1052.5, 'Ford_Maverick_Escape': -50.0, 'Ford_Mondeo': 1895.9, 'Ford_Mondeo_2.0_Turnier_DI': -100.0, 'Ford_Mondeo_2.0_Turnier_TDCi': 340.0, 'Ford_Mondeo_2.0_Turnier_TDCi_Ghia': 1477.5555555555557, 'Ford_Mondeo_Turnier_2.0_TDCi_Trend': 3095.0, 'Ford_Streetka_1.6_8V_Elegance': 1754.0, 'Ford_Tourneo_Connect__Kurz_': -1033.0, 'Ford_Transit': 5125.0, 'Ford_Transit_Connect__Lang_': 1750.0, 'Ford_focus_kombi': 2100.0, 'Honda_Accord': 3100.0, 'Honda_Accord_2.0_i_Automatik_Sport': 1100.0, 'Honda_CRX_1.6i_16': -573.3333333333333, 'Honda_Civic': -2277.75, 'Hyundai_Accent_1.3i_GLS': 50.0, 'Hyundai_Atos_Prime': 990.0, 'Hyundai_Coupe_2.0': 199.0, 'Hyundai_Santa_Fe_2.4_2WD_GLS': 2247.8, 'Hyundai_i30_1.4': 1900.0, 'Hyundai_i30_1.4_Classic': 3315.0, 'Hyundai_i40cw_1.7_CRDi': 2500.0, 'Jeep_Grand_Cherokee_4.7_Limited': 3350.0, 'Jeep_Wrangler': 3050.0, 'Kia_Picanto': 497.5999999999999, 'Kia_Picanto_1.1_EX': 33.33333333333326, 'Kia_Picanto_1.1_LX': 375.0, 'Kia_Rio_1.2': -2700.0, 'Kia_Sorento_2.5_CRDi_VGT_Aut._EX': 7750.0, 'Kia_pro_Ceed_1.6_CVVT_EX': 3350.0, 'Land_Rover_Freelander_Td4': 649.5, 'MG_MGF_1.8i': 662.5, 'MINI_Cooper': 910.0, 'MINI_Cooper_D': 7312.5, 'MINI_Mini_Cooper': 2962.3600000000006, 'MINI_Mini_One': 1277.961538461538, 'Mazda_2_1.4l_Active': 467.0, 'Mazda_3': 1850.0, 'Mazda_323_F_2.0_Sportive': 1150.0, 'Mazda_3_1.6': -2200.0, 'Mazda_5_2.0': 750.0, 'Mazda_5_2.0_CD_DPF_Exclusive': 1798.333333333333, 'Mazda_6_Sport_Kombi_2.0_CD_DPF': 4500.0, 'Mazda_MX_5_1.6i_16V': 1569.8461538461538, 'Mazda_Premacy': 469.5, 'Mazda_Premacy_1.9_Comfort': 383.3333333333335, 'Mazda_RX_8': -890.0, 'Mazda_RX_8_Revolution': 5400.0, 'Mercedes_A_Klasse': -150.0, 'Mercedes_Benz_190_E': 1535.5714285714284, 'Mercedes_Benz_200': 4719.666666666666, 'Mercedes_Benz_200_D': 2873.75, 'Mercedes_Benz_220': 4709.9, 'Mercedes_Benz_308_Diesel': -550.0, 'Mercedes_Benz_A_140': 1097.5555555555557, 'Mercedes_Benz_A_160': 245.30769230769238, 'Mercedes_Benz_A_170_Avantgarde': 138.16666666666697, 'Mercedes_Benz_A_170_CDI_Elegance': 996.6666666666665, 'Mercedes_Benz_A_180': 10112.5, 'Mercedes_Benz_A_180_CDI': 1874.5, 'Mercedes_Benz_A_180_CDI_Classic': 1650.0, 'Mercedes_Benz_B_170': 4083.333333333333, 'Mercedes_Benz_B_180_CDI_Autotronic': 5385.0, 'Mercedes_Benz_B_180_CDI__BlueEFFICIENCY__7G_DCT': 11450.0, 'Mercedes_Benz_B_200': 3849.5, 'Mercedes_Benz_B_200_Turbo': 5025.0, 'Mercedes_Benz_CE_230': 1050.0, 'Mercedes_Benz_CLK_Cabrio_240_Avantgarde': 3350.0, 'Mercedes_Benz_CLK_Coupe_200_Elegance': -434.0, 'Mercedes_Benz_CLK_Coupe_200_Kompressor_Avantgarde': 7900.0, 'Mercedes_Benz_CLK_Coupe_320_Avantgarde': 396.66666666666697, 'Mercedes_Benz_C_180': -1039.1111111111113, 'Mercedes_Benz_C_180_Esprit': 199.79999999999995, 'Mercedes_Benz_C_180_Kompressor': 6022.25, 'Mercedes_Benz_C_180_Kompressor_Sportcoupe': 2299.666666666667, 'Mercedes_Benz_C_180_Sportcoupe': -152.0, 'Mercedes_Benz_C_180_T_Kompressor_Classic': -302.0, 'Mercedes_Benz_C_200_CDI_Classic': -9778.0, 'Mercedes_Benz_C_200_CDI_DPF__BlueEFFICIENCY__Avantgarde': 3009.0, 'Mercedes_Benz_C_200_Elegance': 2275.0, 'Mercedes_Benz_C_200_Kompressor': -190.0, 'Mercedes_Benz_C_200_T_Kompressor_Automatik': -4300.0, 'Mercedes_Benz_C_220': 5621.285714285715, 'Mercedes_Benz_C_220_CDI': 2075.5, 'Mercedes_Benz_C_220_CDI_DPF_Automatik_Classic': 699.0, 'Mercedes_Benz_C_220_T_CDI': 1762.5, 'Mercedes_Benz_C_220_T_CDI_Elegance': -1500.0, 'Mercedes_Benz_C_230_T_Kompressor_Sport': -850.0, 'Mercedes_Benz_C_270_T_CDI_Avantgarde': 1617.5, 'Mercedes_Benz_E220_CDI': 6400.0, 'Mercedes_Benz_E_200': 23.333333333333485, 'Mercedes_Benz_E_200_CDI_Automatik': 0.0, 'Mercedes_Benz_E_200_CDI_DPF_BlueEFFICIENCY_Automatik': 2249.5, 'Mercedes_Benz_E_220_CDI': 5797.0, 'Mercedes_Benz_E_220_CDI_Automatik': 2008.1428571428569, 'Mercedes_Benz_E_220_CDI_Automatik_Classic': 125.0, 'Mercedes_Benz_E_220_CDI_Automatik_Elegance_DPF': 899.0, 'Mercedes_Benz_E_220_CDI_DPF_BlueEFFICIENCY_Automatik': 250.0, 'Mercedes_Benz_E_220_T_CDI_Automatik': -3125.0, 'Mercedes_Benz_E_240_T_Avantgarde': -2039.0, 'Mercedes_Benz_E_270_CDI': 4088.0, 'Mercedes_Benz_E_280_CDI_4Matic_Automatik_Avantgarde_DPF': 5600.0, 'Mercedes_Benz_E_280_T_CDI_Avantgarde_DPF': 794.5, 'Mercedes_Benz_E_300_T_TD_Avantgarde': 150.0, 'Mercedes_Benz_E_320_CDI_7G_TRONIC_Avantgarde_DPF': -6000.0, 'Mercedes_Benz_E_320_T_CDI': 1548.6000000000004, 'Mercedes_Benz_E_350_CDI_DPF_BlueEFFICIENCY_7G_TRONIC': 5600.0, 'Mercedes_Benz_G_230': 5500.0, 'Mercedes_Benz_G_350_TD__GD_Turbo_': 300.0, 'Mercedes_Benz_ML_270_CDI': 2040.75, 'Mercedes_Benz_ML_350_CDI_4Matic_7G_TRONIC_DPF': 6615.0, 'Mercedes_Benz_SLK_200': 2357.8, 'Mercedes_Benz_SLK_200_Kompressor': 8959.954545454546, 'Mercedes_Benz_S_320_CDI': -1786.666666666667, 'Mercedes_Benz_S_350': 6150.0, 'Mercedes_Benz_Sprinter': 9250.0, 'Mercedes_Benz_V_220_CDI_Ambiente': -300.0, 'Mercedes_Benz_Vaneo_CDI_1.7': -1117.6666666666667, 'Mercedes_E220_CDI': 200.0, 'Mercedes_c180': 4699.5, 'Mini_Cooper': 5799.5, 'Mitsubishi_Carisma_GDI': -740.0, 'Mitsubishi_Colt': -2150.0, 'Mitsubishi_Colt_CZ3_1.3_Motion': -150.0, 'Mitsubishi_Galant_2.4_GDI_Avance': -500.0, 'Nissan_350_Z': 6999.5, 'Nissan_Micra_1.0_Fresh': -424.5, 'Nissan_Micra_1.2': 1376.5555555555557, 'Nissan_Micra_1.2_visia': 949.5, 'Nissan_Micra_1.5_dCi': 3300.0, 'Nissan_Patrol_2.8_Turbo_D_GR': -2501.0, 'Nissan_Primera_1.8_acenta': 1900.0, 'Nissan_Primera_Traveller_1.8': 897.25, 'Nissan_Qashqai_2.0_dCi_4_x_4_DPF_Aut._tekna': 3725.0, 'Nissan_Terrano_II': -500.0, 'Opel_Agila': -56.66666666666674, 'Opel_Astra': 2262.8421052631575, 'Opel_Astra_1.4': 766.6666666666665, 'Opel_Astra_1.4_Caravan': 1899.0, 'Opel_Astra_1.4_ecoFLEX_Edition': 1035.0, 'Opel_Astra_1.6': -440.6500000000001, 'Opel_Astra_1.6_Caravan_Comfort': -49.0, 'Opel_Astra_1.6_Caravan_Njoy': -125.0, 'Opel_Astra_1.7_CDTI_Caravan': 369.8000000000002, 'Opel_Astra_1.7_CDTI_DPF_Sports_Tourer_Innovation': 1199.0, 'Opel_Astra_1.8_Sport': -1650.0, 'Opel_Astra_1.9_CDTI_Caravan_DPF': 2240.0, 'Opel_Astra_2.0_Turbo_Sport': -341.0, 'Opel_Astra_Cabrio_1.6i_Bertone_Edition': 615.5, 'Opel_Astra_Cabrio_1.8_16V': -2743.0, 'Opel_Astra_Caravan': 2700.0, 'Opel_Astra_F_Caravan': -190.0, 'Opel_Astra_GTC_1.6': 2298.333333333333, 'Opel_Astra_G_CC': -75.0, 'Opel_Combo_1.7_CDTI': 1750.0, 'Opel_Corsa_1.0_12V': 499.51724137931024, 'Opel_Corsa_1.0_12V_Njoy': 451.0, 'Opel_Corsa_1.2': -91.0, 'Opel_Corsa_1.2_16V': 1080.1275510204082, 'Opel_Corsa_1.2_16V__ecoFLEX_': -583.333333333333, 'Opel_Corsa_1.2_16V_ecoFLEX_150_Jahre_Opel': -100.0, 'Opel_Corsa_1.4_16V_Energy': 2700.0, 'Opel_Corsa_1.4_16V_Sport': 2228.0, 'Opel_Corsa_1.6_Turbo_GSi': 600.0, 'Opel_Corsa_16V': 299.0, 'Opel_Corsa_C': 733.3333333333333, 'Opel_Corsa_D': 1925.5, 'Opel_Insignia_2.0_CDTI_Sports_Tourer_Sport': 7295.0, 'Opel_Meriva': 3206.75, 'Opel_Meriva_1.4': 1616.75, 'Opel_Meriva_1.6_16V_Cosmo': -1220.0, 'Opel_Omega_Caravan_2.0_16V': 250.0, 'Opel_Signum_1.9_CDTI': 1150.0, 'Opel_Signum_2.2': 1050.0, 'Opel_Signum_3.0_V6_CDTI_Automatik_Cosmo': 800.0, 'Opel_Tigra_Twin_Top_1.4': -1200.0, 'Opel_Vectra_1.6_Caravan': 150.0, 'Opel_Vectra_1.8': 635.7777777777778, 'Opel_Vectra_2.0_Edition_100': -401.0, 'Opel_Zafira': 1807.8000000000002, 'Opel_Zafira_1.6_Comfort': -180.0, 'Opel_Zafira_1.6_Njoy': 2550.0, 'Opel_Zafira_1.7_CDTI': 1400.0, 'Opel_Zafira_1.8_16V_Elegance': -5.0, 'Opel_Zafira_1.8_Edition': 634.75, 'Opel_Zafira_1.9_CDTI': 564.6666666666665, 'Opel_Zafira_1.9_CDTI_Cosmo': 1248.5, 'Opel_Zafira_1.9_CDTI_Edition': 2602.75, 'Opel_Zafira_1.9_CDTI_Edition_Plus': 340.0, 'Opel_Zafira_A': 2100.0, 'Opel_astra_g': 1450.0, 'Opel_zafira': 1266.0, 'Peugeot_206': -447.3684210526317, 'Peugeot_206_110_Quiksilver': 625.0, 'Peugeot_206_CC_110_Filou': 2003.2857142857142, 'Peugeot_206_CC_135_Platinum': 2331.541666666667, 'Peugeot_206_cc': 463.3333333333335, 'Peugeot_207': -1700.5, 'Peugeot_207_95_VTi_Urban_Move': 417.0, 'Peugeot_207_CC_120_VTi_Sport': 3495.8, 'Peugeot_306_Cabriolet_1.6_Saint_Tropez': -600.0, 'Peugeot_307': 726.6666666666665, 'Peugeot_307_110': 866.3333333333335, 'Peugeot_307_HDi_SW_110': -355.0, 'Peugeot_407_Coupe_V6_HDi_FAP_205_Platinum': 8000.0, 'Peugeot_807_HDi_130_Tendance': 1949.6666666666665, 'Porsche_911_Carrera_Cabrio': 18945.0, 'Porsche_Cayenne_Diesel_Tiptronic_S': -5625.0, 'Porsche_Cayenne_Turbo_S': 5200.0, 'Renault_Clio': 2319.8888888888887, 'Renault_Clio_1.2': -36.25, 'Renault_Clio_1.2_16V_75_Dynamique': 4600.0, 'Renault_Clio_1.2_Campus': 779.8333333333335, 'Renault_Kangoo_1.5_dCi': 199.66666666666652, 'Renault_Kangoo_Rapid_1.5_dCi': 1350.0, 'Renault_Laguna': 897.3333333333335, 'Renault_Laguna_1.9_dCi': 299.0, 'Renault_Megane_1.6_Grandtour': 90.0, 'Renault_Megane_Scenic': 774.5, 'Renault_Modus_1.6_16V': -470.0, 'Renault_Scenic_1.6_16V': 1385.25, 'Renault_Scenic_II': -700.0, 'Renault_Trafic_1.9_dCi_L1H1': 5044.5, 'Renault_Twingo': 1015.8571428571429, 'Renault_Twingo_1.2_16V_LEV_eco2': 2500.0, 'Renault_Twingo_1.2_16V_Lazuli': 557.5, 'Renault_Twingo_1.2_LEV_16V_75': 823.333333333333, 'Renault_kangoo': 9150.0, 'Renault_scenic': 266.66666666666674, 'Seat_Alhambra_2.0_TDI_Ecomotive_Style': 5500.0, 'Seat_Altea': 2266.333333333333, 'Seat_Altea_zu_verkaufen': 2050.0, 'Seat_Ibiza_1.4': 1645.0, 'Seat_Ibiza_1.4_16V_Comfort_Edition': 2316.6666666666665, 'Seat_Ibiza_1.4_16V_Reference': -4212.5, 'Seat_Ibiza_1.4_16V_Sport': 3600.6000000000004, 'Seat_Ibiza_1.9_TDI_Sport': 1575.6666666666665, 'Seat_Ibiza_SC_1.2_12V': 3100.0, 'Seat_Ibiza_ST_1.6_TDI_CR_Style': -2001.0, 'Seat_Leon_1.4_TSI': 4900.0, 'Seat_Leon_1.6_16V': 133.33333333333348, 'Seat_Leon_1.9_TDI': 791.6666666666665, 'Skoda_Fabia_1.2_HTP_Classic': 373.3333333333335, 'Skoda_Fabia_1.2_HTP_Combi_Ambiente': 1100.0, 'Skoda_Fabia_1.4_16V_Combi': 2136.0, 'Skoda_Fabia_1.4_16V_Combi_Ambiente': 1700.0, 'Skoda_Fabia_1.9_TDI_RS': -175.0, 'Skoda_Octavia_1.9_TDI_Combi_Tour': -4350.0, 'Skoda_Octavia_Combi_1.6_FSI_Ambiente': 560.0, 'Skoda_Octavia_Combi_1.8_TSI_Elegance': 2150.0, 'Skoda_Octavia_Combi_2.0_TDI': 1150.0, 'Skoda_Superb_Combi_2.0_TDI_Ambition': 2501.0, 'Skoda_Superb_Combi_2.0_TDI_DSG_Elegance': -2100.0, 'Smart_ForTwo': 2286.25, 'Smart_Fortwo_Coupe': 5400.0, 'Smart_smart_&_passion': 1036.8461538461538, 'Smart_smart_&_pulse': 1770.0, 'Smart_smart_&_pulse_cdi': 271.33333333333326, 'Smart_smart_&_pure': -100.5, 'Smart_smart_forfour': 2399.0, 'Smart_smart_fortwo_coupe': 715.666666666667, 'Smart_smart_limited/1': 309.0, 'Subaru_Impreza_2.0R': 2000.0, 'Suzuki_Swift_1.3': 1200.0, 'Suzuki_Swift_1.3_Comfort_dance': 1850.0, 'Suzuki_Swift_1.5_Comfort+': 1790.0, 'Toyota_Auris': 2700.0, 'Toyota_Aygo_Cool': 2447.142857142857, 'Toyota_Corolla_1.4': -616.6666666666665, 'Toyota_Yaris_1.3_VVT_i_Sol': -200.5, 'Trabant_601': 2466.6666666666665, 'VW_Golf_4': -1100.0, 'VW_Golf_Cabrio': 1491.0, 'VW_Golf_IV': -1200.0, 'VW_Polo_6N': 389.0, 'VW_Polo_6R': 2100.0, 'Volkswagen_Beetle': 5132.09090909091, 'Volkswagen_Bora': 1890.0, 'Volkswagen_Bora_1.6': 132.66666666666652, 'Volkswagen_Bora_1.6_Pacific': -50.0, 'Volkswagen_Bora_1.9_TDI': 1274.5, 'Volkswagen_Bora_2.0': 1900.0, 'Volkswagen_Caddy_1.4': 2225.0, 'Volkswagen_Caddy_1.9_TDI_Life__5_Si._': 3316.666666666667, 'Volkswagen_Fox_1.2': -78.125, 'Volkswagen_Fox_1.4_TDI': 600.0, 'Volkswagen_Golf': 2192.3333333333335, 'Volkswagen_Golf_1.4': 812.7924528301887, 'Volkswagen_Golf_1.4_Comfortline': -1005.166666666667, 'Volkswagen_Golf_1.4_TSI_DSG_Highline': 7347.5, 'Volkswagen_Golf_1.4_TSI_Highline': 4167.799999999999, 'Volkswagen_Golf_1.4_Trendline': 2628.92, 'Volkswagen_Golf_1.6': 549.4848484848485, 'Volkswagen_Golf_1.6_Automatik': -140.19999999999982, 'Volkswagen_Golf_1.6_Automatik_Edition': -500.5, 'Volkswagen_Golf_1.6_FSI_Comfortline': 1310.0, 'Volkswagen_Golf_1.6_TDI_BlueMotion_Technology': 10833.333333333334, 'Volkswagen_Golf_1.8_5V_Turbo': 2300.0, 'Volkswagen_Golf_1.9_TDI': 653.1724137931033, 'Volkswagen_Golf_1.9_TDI_4Motion': -700.0, 'Volkswagen_Golf_1.9_TDI_Sport_Edition': 1349.6666666666665, 'Volkswagen_Golf_2.0': 146.66666666666674, 'Volkswagen_Golf_2.0_GTI': 1335.869565217392, 'Volkswagen_Golf_2.0_TDI': -1751.833333333333, 'Volkswagen_Golf_2.0_TDI_Comfortline': 536.3333333333335, 'Volkswagen_Golf_2.0_TDI_DSG': 1550.0, 'Volkswagen_Golf_2.3_V5': 133.33333333333326, 'Volkswagen_Golf_Cabrio_1.2_TSI': 4632.666666666666, 'Volkswagen_Golf_Cabrio_1.8': 729.0, 'Volkswagen_Golf_Plus': 3646.666666666667, 'Volkswagen_Golf_Plus_1.9_TDI_Goal': 3450.0, 'Volkswagen_Golf_Variant_1.4_Comfortline': -1750.0, 'Volkswagen_Golf_Variant_1.6_TDI_DPF_Style': 5281.25, 'Volkswagen_Golf_Variant_1.9_TDI_Comfortline': 2092.6666666666665, 'Volkswagen_Golf_Variant_1.9_TDI_DPF': 800.0, 'Volkswagen_Kaefer': 1156.333333333333, 'Volkswagen_Lupo_1.0': 419.13333333333344, 'Volkswagen_Multivan_DPF_Highline': 26450.0, 'Volkswagen_Multivan_DSG_Highline': 7400.0, 'Volkswagen_Multivan_T4_70B_MC2': 194.5, 'Volkswagen_Multivan_T4_TDI': 2166.666666666666, 'Volkswagen_New_Beetle': 1200.0, 'Volkswagen_Passat': 2628.7333333333336, 'Volkswagen_Passat_1.8_5V': 1150.0, 'Volkswagen_Passat_2.0_TDI_Highline': -2300.0, 'Volkswagen_Passat_Variant_1.6': 221.22727272727275, 'Volkswagen_Passat_Variant_1.8_5V_Turbo': 834.1428571428573, 'Volkswagen_Passat_Variant_1.8_GL': -150.0, 'Volkswagen_Passat_Variant_1.9_TDI': 942.0104166666665, 'Volkswagen_Passat_Variant_1.9_TDI_4Motion': 1275.0, 'Volkswagen_Passat_Variant_1.9_TDI_Comfortline': 1238.6666666666665, 'Volkswagen_Passat_Variant_1.9_TDI_Comfortline_Family': 1361.0, 'Volkswagen_Passat_Variant_1.9_TDI_Highline': 2377.285714285714, 'Volkswagen_Passat_Variant_1.9_TDI_Sportline': 500.0, 'Volkswagen_Passat_Variant_2.0_TDI': 1598.333333333333, 'Volkswagen_Passat_Variant_2.0_TDI_BlueMotion_Technology...': 4786.25, 'Volkswagen_Passat_Variant_2.0_TDI_Comfortline': 892.8000000000002, 'Volkswagen_Passat_Variant_2.0_TDI_DPF_Comfortline': 2429.1111111111113, 'Volkswagen_Passat_Variant_2.0_TDI_DPF_DSG_Comfortline': 3004.333333333333, 'Volkswagen_Passat_Variant_2.0_TDI_DPF_DSG_Highline': 4559.727272727272, 'Volkswagen_Passat_Variant_2.5_TDI_V6_Trendline': 1100.0, 'Volkswagen_Polo': 946.4565217391305, 'Volkswagen_Polo_1.2': -230.6341463414633, 'Volkswagen_Polo_1.2_Comfortline': 1308.9499999999998, 'Volkswagen_Polo_1.2_Goal': 2962.25, 'Volkswagen_Polo_1.2_Sportline': 1600.0, 'Volkswagen_Polo_1.2_TSI_Life': 6400.0, 'Volkswagen_Polo_1.4': 2801.85, 'Volkswagen_Polo_1.4_Comfortline': 3000.142857142857, 'Volkswagen_Polo_1.4_TDI_Comfortline': 706.0, 'Volkswagen_Polo_60_Servo': -387.5, 'Volkswagen_Sharan_1.9_TDI_Comfortline_Family': 2672.25, 'Volkswagen_Sharan_1.9_TDI_Family': -6362.0, 'Volkswagen_Touareg_3.0_V6_TDI_DPF': -2050.0, 'Volkswagen_Touran_1.9_TDI': 288.66666666666697, 'Volkswagen_Touran_1.9_TDI_DPF_Goal': 1251.0, 'Volkswagen_Touran_1.9_TDI_Highline': 950.0, 'Volkswagen_Touran_2.0_TDI_DPF_DSG_Highline': 3894.7999999999993, 'Volkswagen_Touran_2.0_TDI_DPF_Highline': 3827.5, 'Volkswagen_Touran_2.0_TDI_DSG_Highline': 1266.666666666667, 'Volkswagen_Transporter_T4': 1412.5, 'Volkswagen_up!': 954.833333333333, 'Volkswagen_up!_take_up!': -1649.0, 'Volvo_V40_1.8': 150.0, 'Volvo_V40_1.9_D': 1487.5, 'Volvo_V50_2.0D': 350.0, 'zu_verkaufen': 100.0}
price_comparison = pd.Series(price_comparison)
price_comparison
Alfa_Romeo_147_1.6_Twin_Spark_Distinctive 383.800000 Alfa_Romeo_156_2.0_JTS -1700.000000 Audi_80_Avant_2.6_E 3900.000000 Audi_A3 2259.928571 Audi_A3_1.4_TFSI_Sportback_Ambition 5649.800000 Audi_A3_1.6_Ambiente 752.571429 Audi_A3_1.6_Sportback_Ambiente 2766.333333 Audi_A3_1.8 27.777778 Audi_A3_1.8_Ambiente 392.166667 Audi_A3_1.8_Attraction -650.000000 Audi_A3_1.9_TDI 917.375000 Audi_A3_1.9_TDI_Ambiente 2830.000000 Audi_A3_1.9_TDI_DPF_Ambition 1300.000000 Audi_A3_1.9_TDI_DPF_Attraction 1900.000000 Audi_A3_2.0_FSI -450.500000 Audi_A3_2.0_FSI_Ambiente 570.000000 Audi_A3_2.0_FSI_Ambition 1490.000000 Audi_A3_2.0_TDI_DPF 400.000000 Audi_A3_2.0_TDI_Sportback_Ambition 9116.666667 Audi_A4 2097.600000 Audi_A4_1.6 1424.454545 Audi_A4_1.8_T 2762.714286 Audi_A4_1.9_TDI 1531.727273 Audi_A4_2.0_TDI_DPF 5097.500000 Audi_A4_2.5_TDI 1487.250000 Audi_A4_Avant 166.666667 Audi_A4_Avant_1.6 575.000000 Audi_A4_Avant_1.9_TDI 728.954545 Audi_A4_Avant_1.9_TDI_DPF 3583.333333 Audi_A4_Avant_1.9_TDI_quattro 1020.000000 ... Volkswagen_Passat_Variant_2.0_TDI_DPF_Comfortline 2429.111111 Volkswagen_Passat_Variant_2.0_TDI_DPF_DSG_Comfortline 3004.333333 Volkswagen_Passat_Variant_2.0_TDI_DPF_DSG_Highline 4559.727273 Volkswagen_Passat_Variant_2.5_TDI_V6_Trendline 1100.000000 Volkswagen_Polo 946.456522 Volkswagen_Polo_1.2 -230.634146 Volkswagen_Polo_1.2_Comfortline 1308.950000 Volkswagen_Polo_1.2_Goal 2962.250000 Volkswagen_Polo_1.2_Sportline 1600.000000 Volkswagen_Polo_1.2_TSI_Life 6400.000000 Volkswagen_Polo_1.4 2801.850000 Volkswagen_Polo_1.4_Comfortline 3000.142857 Volkswagen_Polo_1.4_TDI_Comfortline 706.000000 Volkswagen_Polo_60_Servo -387.500000 Volkswagen_Sharan_1.9_TDI_Comfortline_Family 2672.250000 Volkswagen_Sharan_1.9_TDI_Family -6362.000000 Volkswagen_Touareg_3.0_V6_TDI_DPF -2050.000000 Volkswagen_Touran_1.9_TDI 288.666667 Volkswagen_Touran_1.9_TDI_DPF_Goal 1251.000000 Volkswagen_Touran_1.9_TDI_Highline 950.000000 Volkswagen_Touran_2.0_TDI_DPF_DSG_Highline 3894.800000 Volkswagen_Touran_2.0_TDI_DPF_Highline 3827.500000 Volkswagen_Touran_2.0_TDI_DSG_Highline 1266.666667 Volkswagen_Transporter_T4 1412.500000 Volkswagen_up! 954.833333 Volkswagen_up!_take_up! -1649.000000 Volvo_V40_1.8 150.000000 Volvo_V40_1.9_D 1487.500000 Volvo_V50_2.0D 350.000000 zu_verkaufen 100.000000 Length: 531, dtype: float64