update
20
colors.txt
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
exterior_colors = [
|
||||||
|
"192, 192, 192"
|
||||||
|
"0, 0, 0"
|
||||||
|
"255, 255, 255"
|
||||||
|
"128, 128, 128"
|
||||||
|
"255, 0, 0"
|
||||||
|
"255, 69, 0"
|
||||||
|
"0, 0, 255"
|
||||||
|
"75, 0, 130"
|
||||||
|
"255, 215, 0"
|
||||||
|
"34, 139, 34"
|
||||||
|
"160, 82, 45"
|
||||||
|
"245, 245, 220"
|
||||||
|
"210, 105, 30"
|
||||||
|
"255, 20, 147"
|
||||||
|
"255, 228, 196"
|
||||||
|
"255, 223, 0"
|
||||||
|
"85, 107, 47"
|
||||||
|
"192, 192, 192"
|
||||||
|
]
|
||||||
2
exports/makes_without_models.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
make_id,make_name,is_sa_import
|
||||||
|
4148,DFM,False
|
||||||
|
560
exports/models_without_series.csv
Normal file
@ -0,0 +1,560 @@
|
|||||||
|
model_id,model_name,make_id,make_name
|
||||||
|
19753,Vigor,2,Acura
|
||||||
|
31,Alfa 6,3,Alfa Romeo
|
||||||
|
19754,1750,3,Alfa Romeo
|
||||||
|
19755,2000,3,Alfa Romeo
|
||||||
|
19756,2300,3,Alfa Romeo
|
||||||
|
19759,Dauphine,3,Alfa Romeo
|
||||||
|
19763,DB2,9,Aston Martin
|
||||||
|
19764,DB2/4,9,Aston Martin
|
||||||
|
19765,DB4,9,Aston Martin
|
||||||
|
19766,DB6,9,Aston Martin
|
||||||
|
19555,F103,10,Audi
|
||||||
|
19768,4000,10,Audi
|
||||||
|
19769,5000,10,Audi
|
||||||
|
19771,Fox,10,Audi
|
||||||
|
22556,Q8 I,10,Audi
|
||||||
|
120,Mini Metro,11,Austin
|
||||||
|
22595,BJ 2021,14,Beijing
|
||||||
|
19259,S-series,15,Bentley
|
||||||
|
19784,Type 57,24,Bugatti
|
||||||
|
19786,F7,26,BYD
|
||||||
|
19787,i6,26,BYD
|
||||||
|
19788,Calais,28,Cadillac
|
||||||
|
19789,Series 61,28,Cadillac
|
||||||
|
19790,Series 70,28,Cadillac
|
||||||
|
19791,SLS,28,Cadillac
|
||||||
|
19793,Star Truck,32,Changan
|
||||||
|
22484,CM8,32,Changan
|
||||||
|
22492,Chana SM8,32,Changan
|
||||||
|
245,SUV,33,ChangFeng
|
||||||
|
2253,A19,34,Chery
|
||||||
|
19797,Arauca,34,Chery
|
||||||
|
19799,Cowin,34,Chery
|
||||||
|
19802,Ego,34,Chery
|
||||||
|
19803,Elara,34,Chery
|
||||||
|
19804,Face,34,Chery
|
||||||
|
19805,Fengyun,34,Chery
|
||||||
|
19807,Fulwin,34,Chery
|
||||||
|
19808,Fulwin 2,34,Chery
|
||||||
|
19809,J1,34,Chery
|
||||||
|
19810,J11,34,Chery
|
||||||
|
19814,Qiyun,34,Chery
|
||||||
|
19816,Riich 2,34,Chery
|
||||||
|
19818,Storm 2,34,Chery
|
||||||
|
2255,City Express,35,Chevrolet
|
||||||
|
19270,Stylemaster,35,Chevrolet
|
||||||
|
19820,150,35,Chevrolet
|
||||||
|
19821,1700,35,Chevrolet
|
||||||
|
19822,210,35,Chevrolet
|
||||||
|
19823,400,35,Chevrolet
|
||||||
|
19826,Biscayne,35,Chevrolet
|
||||||
|
19827,Calibra,35,Chevrolet
|
||||||
|
19828,Chevy II,35,Chevrolet
|
||||||
|
19831,Commodore,35,Chevrolet
|
||||||
|
19834,Delray,35,Chevrolet
|
||||||
|
19836,Fleetline,35,Chevrolet
|
||||||
|
19851,Opala,35,Chevrolet
|
||||||
|
19855,Senator,35,Chevrolet
|
||||||
|
19857,Spectrum,35,Chevrolet
|
||||||
|
19859,Sprint,35,Chevrolet
|
||||||
|
19862,Task Force,35,Chevrolet
|
||||||
|
19867,Veraneio,35,Chevrolet
|
||||||
|
340,TC,36,Chrysler
|
||||||
|
19870,Alpine,36,Chrysler
|
||||||
|
19871,Avenger,36,Chrysler
|
||||||
|
19872,Centura,36,Chrysler
|
||||||
|
19873,Conquest,36,Chrysler
|
||||||
|
19875,Delta,36,Chrysler
|
||||||
|
19876,Drifter,36,Chrysler
|
||||||
|
19877,Executive,36,Chrysler
|
||||||
|
19879,Horizon,36,Chrysler
|
||||||
|
19880,Hunter,36,Chrysler
|
||||||
|
19881,Lancer,36,Chrysler
|
||||||
|
19882,Laser,36,Chrysler
|
||||||
|
19884,Sunbeam,36,Chrysler
|
||||||
|
19885,Valiant,36,Chrysler
|
||||||
|
19886,Valiant Galant,36,Chrysler
|
||||||
|
19888,Axel,37,Citroen
|
||||||
|
19889,Bijou,37,Citroen
|
||||||
|
19890,C15,37,Citroen
|
||||||
|
19892,C35,37,Citroen
|
||||||
|
19894,Chanson,37,Citroen
|
||||||
|
19897,Dispatch,37,Citroen
|
||||||
|
19898,Fukang,37,Citroen
|
||||||
|
19900,ID,37,Citroen
|
||||||
|
19902,Mehari,37,Citroen
|
||||||
|
19905,Synergie,37,Citroen
|
||||||
|
19906,1100,40,Dacia
|
||||||
|
19907,1320,40,Dacia
|
||||||
|
19909,2000,40,Dacia
|
||||||
|
19910,500,40,Dacia
|
||||||
|
19911,D6,40,Dacia
|
||||||
|
19912,Denem,40,Dacia
|
||||||
|
19913,Gamma,40,Dacia
|
||||||
|
19915,Shifter,40,Dacia
|
||||||
|
19917,Aranos,42,Daewoo
|
||||||
|
19918,Brougham,42,Daewoo
|
||||||
|
19919,Cielo,42,Daewoo
|
||||||
|
19920,Fantasy,42,Daewoo
|
||||||
|
19921,Imperial,42,Daewoo
|
||||||
|
19924,Maepsy,42,Daewoo
|
||||||
|
19925,Pointer,42,Daewoo
|
||||||
|
19927,Veritas,42,Daewoo
|
||||||
|
19929,Ayla,44,Daihatsu
|
||||||
|
19931,Compagno,44,Daihatsu
|
||||||
|
19932,Consorte,44,Daihatsu
|
||||||
|
19933,Domino,44,Daihatsu
|
||||||
|
19935,Fourtrak,44,Daihatsu
|
||||||
|
19936,Gran Max,44,Daihatsu
|
||||||
|
19938,Luxio,44,Daihatsu
|
||||||
|
19941,Sportrak,44,Daihatsu
|
||||||
|
19942,Taruna,44,Daihatsu
|
||||||
|
19943,Valera,44,Daihatsu
|
||||||
|
19944,Zebra,44,Daihatsu
|
||||||
|
19948,1000,47,Datsun
|
||||||
|
19949,1200,47,Datsun
|
||||||
|
19950,200SX,47,Datsun
|
||||||
|
19951,240Z / 260Z / 280Z,47,Datsun
|
||||||
|
19952,510,47,Datsun
|
||||||
|
19953,610,47,Datsun
|
||||||
|
19954,710,47,Datsun
|
||||||
|
19955,810,47,Datsun
|
||||||
|
19956,B-210,47,Datsun
|
||||||
|
19959,Fairlady,47,Datsun
|
||||||
|
19961,Patrol,47,Datsun
|
||||||
|
19962,Pickup,47,Datsun
|
||||||
|
19964,330,51,Dodge
|
||||||
|
19965,400,51,Dodge
|
||||||
|
19966,440,51,Dodge
|
||||||
|
19967,A100,51,Dodge
|
||||||
|
19968,Aspen,51,Dodge
|
||||||
|
19970,Brisa,51,Dodge
|
||||||
|
19972,Conquest,51,Dodge
|
||||||
|
19974,Demon,51,Dodge
|
||||||
|
19976,Forza,51,Dodge
|
||||||
|
19977,Matador,51,Dodge
|
||||||
|
19978,Meadowbrook,51,Dodge
|
||||||
|
19979,Mirada,51,Dodge
|
||||||
|
19980,Phoenix,51,Dodge
|
||||||
|
19982,Power Wagon,51,Dodge
|
||||||
|
19984,Ram 50,51,Dodge
|
||||||
|
19985,Rampage,51,Dodge
|
||||||
|
19987,Royal,51,Dodge
|
||||||
|
19988,SE,51,Dodge
|
||||||
|
19990,St. Regis,51,Dodge
|
||||||
|
19992,Future,52,DongFeng
|
||||||
|
20941,AX3,52,DongFeng
|
||||||
|
20950,A60,52,DongFeng
|
||||||
|
19993,Orion M,53,Doninvest
|
||||||
|
19998,Besturn B90,59,FAW
|
||||||
|
19999,C131,59,FAW
|
||||||
|
20000,Jiabao,59,FAW
|
||||||
|
20001,Kun Cheng,59,FAW
|
||||||
|
20002,M80,59,FAW
|
||||||
|
20004,Sirius S80,59,FAW
|
||||||
|
20007,Vela,59,FAW
|
||||||
|
20008,Xiali N3,59,FAW
|
||||||
|
20009,Xiali N5,59,FAW
|
||||||
|
540,208,60,Ferrari
|
||||||
|
20011,250,60,Ferrari
|
||||||
|
20014,330,60,Ferrari
|
||||||
|
20015,365,60,Ferrari
|
||||||
|
20016,Berlinetta Boxer,60,Ferrari
|
||||||
|
609,X1/9,61,Fiat
|
||||||
|
20017,1100,61,Fiat
|
||||||
|
20018,1200,61,Fiat
|
||||||
|
20020,1300/1500,61,Fiat
|
||||||
|
20021,133,61,Fiat
|
||||||
|
20022,1400,61,Fiat
|
||||||
|
20023,147,61,Fiat
|
||||||
|
20024,1800/2100,61,Fiat
|
||||||
|
20028,850,61,Fiat
|
||||||
|
20029,Brio,61,Fiat
|
||||||
|
20030,Campagnola,61,Fiat
|
||||||
|
20032,Dino,61,Fiat
|
||||||
|
20034,Elba,61,Fiat
|
||||||
|
20035,Marengo,61,Fiat
|
||||||
|
20036,Mille,61,Fiat
|
||||||
|
20037,Panorama,61,Fiat
|
||||||
|
20038,Perla,61,Fiat
|
||||||
|
20040,Premio,61,Fiat
|
||||||
|
20041,Spazio,61,Fiat
|
||||||
|
20042,Talento,61,Fiat
|
||||||
|
20043,Tucan,61,Fiat
|
||||||
|
20044,Viaggio,61,Fiat
|
||||||
|
20045,Vivace,61,Fiat
|
||||||
|
22557,Fullback I,61,Fiat
|
||||||
|
2223,Bronco II,63,Ford
|
||||||
|
2275,Courier,63,Ford
|
||||||
|
20048,Bantam,63,Ford
|
||||||
|
20049,Comete,63,Ford
|
||||||
|
20050,Corcel,63,Ford
|
||||||
|
20051,Corsair,63,Ford
|
||||||
|
20053,Del Rey,63,Ford
|
||||||
|
20054,Durango,63,Ford
|
||||||
|
20056,Elite,63,Ford
|
||||||
|
20058,EXP,63,Ford
|
||||||
|
20066,GPW,63,Ford
|
||||||
|
20069,Lobo,63,Ford
|
||||||
|
20070,LTD II,63,Ford
|
||||||
|
20072,Pampa,63,Ford
|
||||||
|
20073,Pilot,63,Ford
|
||||||
|
20074,Pinto,63,Ford
|
||||||
|
20075,Popular,63,Ford
|
||||||
|
20076,Prefect,63,Ford
|
||||||
|
20081,Vedette,63,Ford
|
||||||
|
20082,Verona,63,Ford
|
||||||
|
20083,Zodiac,63,Ford
|
||||||
|
679,CK,67,Geely
|
||||||
|
685,LC,67,Geely
|
||||||
|
20097,CD,67,Geely
|
||||||
|
20098,FC,67,Geely
|
||||||
|
20101,HQ,67,Geely
|
||||||
|
20103,SL,67,Geely
|
||||||
|
20104,Uliou,67,Geely
|
||||||
|
724,Voleex C10,71,Great Wall
|
||||||
|
20105,Steed,71,Great Wall
|
||||||
|
20106,Voleex C20R,71,Great Wall
|
||||||
|
20108,Voleex V80,71,Great Wall
|
||||||
|
20110,X240,71,Great Wall
|
||||||
|
20111,Junyi,72,Hafei
|
||||||
|
20112,Lobo,72,Hafei
|
||||||
|
20113,Luzun,72,Hafei
|
||||||
|
20116,Saima,72,Hafei
|
||||||
|
20117,Zhongyi,72,Hafei
|
||||||
|
20119,CX20,73,Haima
|
||||||
|
20122,Fstar,73,Haima
|
||||||
|
20123,H2,73,Haima
|
||||||
|
20124,M11,73,Haima
|
||||||
|
20125,M6,73,Haima
|
||||||
|
20126,M8,73,Haima
|
||||||
|
20127,S3,73,Haima
|
||||||
|
20128,S7,73,Haima
|
||||||
|
20131,Adventra,75,Holden
|
||||||
|
20132,Barina Spark,75,Holden
|
||||||
|
20133,Belmont,75,Holden
|
||||||
|
20134,Berlina,75,Holden
|
||||||
|
20135,Brougham,75,Holden
|
||||||
|
20136,Camira,75,Holden
|
||||||
|
20137,Captiva,75,Holden
|
||||||
|
20138,Colorado,75,Holden
|
||||||
|
20139,Crewman,75,Holden
|
||||||
|
20140,Drover,75,Holden
|
||||||
|
20141,Epica,75,Holden
|
||||||
|
20142,Gemini,75,Holden
|
||||||
|
20143,Kingswood,75,Holden
|
||||||
|
20144,Malibu,75,Holden
|
||||||
|
20145,Monterey,75,Holden
|
||||||
|
20147,Piazza,75,Holden
|
||||||
|
20148,Sandman,75,Holden
|
||||||
|
20149,Tigra,75,Holden
|
||||||
|
20150,Torana,75,Holden
|
||||||
|
20151,Viva,75,Holden
|
||||||
|
20152,Volt,75,Holden
|
||||||
|
20153,1300,76,Honda
|
||||||
|
20155,Amaze,76,Honda
|
||||||
|
20163,MR-V,76,Honda
|
||||||
|
20171,S800,76,Honda
|
||||||
|
20172,Spirior,76,Honda
|
||||||
|
23399,Forza,76,Honda
|
||||||
|
23400,CB650R,76,Honda
|
||||||
|
20173,Santa Fe,77,HuangHai
|
||||||
|
20192,i25,79,Hyundai
|
||||||
|
20203,Santro,79,Hyundai
|
||||||
|
20204,Santro Xing,79,Hyundai
|
||||||
|
20216,Bardo,83,Iran Khodro
|
||||||
|
20221,Alterra,85,Isuzu
|
||||||
|
20222,Bellel,85,Isuzu
|
||||||
|
20224,Campo,85,Isuzu
|
||||||
|
20225,Como,85,Isuzu
|
||||||
|
20226,Crosswind,85,Isuzu
|
||||||
|
20229,Fuego,85,Isuzu
|
||||||
|
20230,I-Mark,85,Isuzu
|
||||||
|
20231,i-Series,85,Isuzu
|
||||||
|
20235,Panther,85,Isuzu
|
||||||
|
20236,Statesman de Ville,85,Isuzu
|
||||||
|
20237,Wasp,85,Isuzu
|
||||||
|
20238,WFR,85,Isuzu
|
||||||
|
20996,Filly,85,Isuzu
|
||||||
|
20241,240/340,88,Jaguar
|
||||||
|
20242,420,88,Jaguar
|
||||||
|
20243,Mark,88,Jaguar
|
||||||
|
20244,SS,88,Jaguar
|
||||||
|
20245,2500,89,Jeep
|
||||||
|
20247,Commando,89,Jeep
|
||||||
|
20250,Baowei,91,JMC
|
||||||
|
20256,Yuhu,91,JMC
|
||||||
|
20257,Yusheng,91,JMC
|
||||||
|
948,Opirus,92,Kia
|
||||||
|
20259,Besta,92,Kia
|
||||||
|
20277,CCXR,93,Koenigsegg
|
||||||
|
20278,350GT,95,Lamborghini
|
||||||
|
20279,400GT,95,Lamborghini
|
||||||
|
22540,Egoista I,95,Lamborghini
|
||||||
|
996,Montecarlo,96,Lancia
|
||||||
|
20283,2000,96,Lancia
|
||||||
|
20287,Scorpion,96,Lancia
|
||||||
|
20288,Stratos HF,96,Lancia
|
||||||
|
1014,Series,97,Land Rover
|
||||||
|
20293,Foison,101,Lifan
|
||||||
|
20298,Cosmopolitan,102,Lincoln
|
||||||
|
20299,Custom,102,Lincoln
|
||||||
|
20300,K-Series,102,Lincoln
|
||||||
|
20305,7,103,Lotus
|
||||||
|
20306,Carlton,103,Lotus
|
||||||
|
20307,Omega,103,Lotus
|
||||||
|
20308,MM 775,106,Mahindra
|
||||||
|
20311,3500 GT,111,Maserati
|
||||||
|
20315,Mistral,111,Maserati
|
||||||
|
20316,Racing,111,Maserati
|
||||||
|
20317,Sebring,111,Maserati
|
||||||
|
20319,Zeppelin,112,Maybach
|
||||||
|
20320,808,113,Mazda
|
||||||
|
20321,Allegro,113,Mazda
|
||||||
|
20322,Bongo Brawny,113,Mazda
|
||||||
|
20323,Bravo,113,Mazda
|
||||||
|
20325,Clef,113,Mazda
|
||||||
|
20326,Drifter,113,Mazda
|
||||||
|
20330,GLC,113,Mazda
|
||||||
|
20332,Miata,113,Mazda
|
||||||
|
20333,Montrose,113,Mazda
|
||||||
|
20334,Porter,113,Mazda
|
||||||
|
20335,Porter Cab,113,Mazda
|
||||||
|
20336,R100,113,Mazda
|
||||||
|
20338,Roadpacer AP,113,Mazda
|
||||||
|
20339,RX-2,113,Mazda
|
||||||
|
1207,SLS AMG,116,Mercedes-Benz
|
||||||
|
20367,Type 300,116,Mercedes-Benz
|
||||||
|
22646,S-klas (w126),116,Mercedes-Benz
|
||||||
|
20371,Bobcat,117,Mercury
|
||||||
|
20373,Comet,117,Mercury
|
||||||
|
20374,Commuter,117,Mercury
|
||||||
|
20375,Custom,117,Mercury
|
||||||
|
20376,Cyclone,117,Mercury
|
||||||
|
20377,LN7,117,Mercury
|
||||||
|
20378,Lynx,117,Mercury
|
||||||
|
20379,M-47,117,Mercury
|
||||||
|
20380,Medalist,117,Mercury
|
||||||
|
20381,Meteor,117,Mercury
|
||||||
|
20382,Monarch,117,Mercury
|
||||||
|
20383,Montclair,117,Mercury
|
||||||
|
20384,Park Lane,117,Mercury
|
||||||
|
20385,S-55,117,Mercury
|
||||||
|
20386,Turnpike Cruiser,117,Mercury
|
||||||
|
20387,Voyager,117,Mercury
|
||||||
|
20388,Zephyr,117,Mercury
|
||||||
|
1240,B,119,MG
|
||||||
|
20389,1100/1300,119,MG
|
||||||
|
20391,A,119,MG
|
||||||
|
20392,C,119,MG
|
||||||
|
20393,Magnette,119,MG
|
||||||
|
1289,Jeep,123,Mitsubishi
|
||||||
|
20398,380,123,Mitsubishi
|
||||||
|
20399,Adventure,123,Mitsubishi
|
||||||
|
20402,Expo,123,Mitsubishi
|
||||||
|
20406,Grunder,123,Mitsubishi
|
||||||
|
20407,L100,123,Mitsubishi
|
||||||
|
20411,Magna,123,Mitsubishi
|
||||||
|
20412,Magnum,123,Mitsubishi
|
||||||
|
20413,Maven,123,Mitsubishi
|
||||||
|
20414,Mighty Max,123,Mitsubishi
|
||||||
|
20415,Montero iO,123,Mitsubishi
|
||||||
|
20416,Nimbus,123,Mitsubishi
|
||||||
|
20418,Precis,123,Mitsubishi
|
||||||
|
20420,Scorpion,123,Mitsubishi
|
||||||
|
20421,Shogun Pinin,123,Mitsubishi
|
||||||
|
20422,Shogun Sport,123,Mitsubishi
|
||||||
|
20423,Towny,123,Mitsubishi
|
||||||
|
20424,Verada,123,Mitsubishi
|
||||||
|
20425,Warrior,123,Mitsubishi
|
||||||
|
20426,Zinger,123,Mitsubishi
|
||||||
|
21000,Fuzion,123,Mitsubishi
|
||||||
|
20427,Classic Type F,124,Mitsuoka
|
||||||
|
20428,70,127,Nissan
|
||||||
|
20434,Axxess,127,Nissan
|
||||||
|
20437,Cherry Cab,127,Nissan
|
||||||
|
20443,Hikari,127,Nissan
|
||||||
|
20445,Hustler,127,Nissan
|
||||||
|
20448,Junior,127,Nissan
|
||||||
|
20455,Multi,127,Nissan
|
||||||
|
20461,Pintara,127,Nissan
|
||||||
|
20464,Tsuru,127,Nissan
|
||||||
|
20468,Delta 88,129,Oldsmobile
|
||||||
|
20469,Deluxe 88,129,Oldsmobile
|
||||||
|
20470,Dynamic 88,129,Oldsmobile
|
||||||
|
20471,Super 88,129,Oldsmobile
|
||||||
|
20810,98,129,Oldsmobile
|
||||||
|
20472,Arena,130,Opel
|
||||||
|
20473,Bedford Blitz,130,Opel
|
||||||
|
20474,Blazer,130,Opel
|
||||||
|
20476,Calais,130,Opel
|
||||||
|
20480,302,135,Peugeot
|
||||||
|
20481,401,135,Peugeot
|
||||||
|
20483,Hoggar,135,Peugeot
|
||||||
|
20486,Pars,135,Peugeot
|
||||||
|
20487,Persia,135,Peugeot
|
||||||
|
20488,Roa,135,Peugeot
|
||||||
|
22596,Grand Espace,136,Piaggio
|
||||||
|
22597,Grand Scenic,136,Piaggio
|
||||||
|
22598,Grand C4 Picasso,136,Piaggio
|
||||||
|
20489,Acadian,138,Pontiac
|
||||||
|
20490,Astre,138,Pontiac
|
||||||
|
20491,Chieftain,138,Pontiac
|
||||||
|
20492,Executive,138,Pontiac
|
||||||
|
20494,G3,138,Pontiac
|
||||||
|
20495,Grand Safari,138,Pontiac
|
||||||
|
20496,Grand Ville,138,Pontiac
|
||||||
|
20498,Matiz,138,Pontiac
|
||||||
|
20499,Pathfinder,138,Pontiac
|
||||||
|
20500,Pursuit,138,Pontiac
|
||||||
|
20501,Star Chief,138,Pontiac
|
||||||
|
20502,Strato Chief,138,Pontiac
|
||||||
|
20503,Streamliner,138,Pontiac
|
||||||
|
20504,Sunburst,138,Pontiac
|
||||||
|
20506,Super Chief,138,Pontiac
|
||||||
|
20508,Ventura,138,Pontiac
|
||||||
|
20515,3,147,Renault
|
||||||
|
19350,Silver Dawn,149,Rolls-Royce
|
||||||
|
20533,Flying Spur,149,Rolls-Royce
|
||||||
|
20535,10,151,Rover
|
||||||
|
20537,16,151,Rover
|
||||||
|
20539,CityRover,151,Rover
|
||||||
|
20543,P5,151,Rover
|
||||||
|
20544,Quintet,151,Rover
|
||||||
|
1647,PS10,154,Santana
|
||||||
|
20547,1200/1430 Sport,157,SEAT
|
||||||
|
20548,124,157,SEAT
|
||||||
|
20549,127,157,SEAT
|
||||||
|
20550,128,157,SEAT
|
||||||
|
20551,131,157,SEAT
|
||||||
|
20553,1400,157,SEAT
|
||||||
|
20554,1430,157,SEAT
|
||||||
|
20555,1500,157,SEAT
|
||||||
|
20556,600/800,157,SEAT
|
||||||
|
20557,850,157,SEAT
|
||||||
|
20559,Panda,157,SEAT
|
||||||
|
20560,Ritmo,157,SEAT
|
||||||
|
20561,CEO,158,ShuangHuan
|
||||||
|
1681,100,159,Skoda
|
||||||
|
20562,1000 MB,159,Skoda
|
||||||
|
20564,1201,159,Skoda
|
||||||
|
20565,1202,159,Skoda
|
||||||
|
20567,440/445/450,159,Skoda
|
||||||
|
20569,Garde,159,Skoda
|
||||||
|
20572,VOS,159,Skoda
|
||||||
|
20577,1500,166,Subaru
|
||||||
|
20580,Estratto,166,Subaru
|
||||||
|
20581,FF-1,166,Subaru
|
||||||
|
20582,Fiori,166,Subaru
|
||||||
|
20584,Loyale,166,Subaru
|
||||||
|
20585,Mini Jumbo,166,Subaru
|
||||||
|
20587,Vortex,166,Subaru
|
||||||
|
20592,Cultus Crescent,167,Suzuki
|
||||||
|
20595,Forsa,167,Suzuki
|
||||||
|
20597,Fun,167,Suzuki
|
||||||
|
20598,Grand Escudo,167,Suzuki
|
||||||
|
20599,Grand Nomade,167,Suzuki
|
||||||
|
20600,Karimun Estilo,167,Suzuki
|
||||||
|
20601,Khyber,167,Suzuki
|
||||||
|
20602,Lapin,167,Suzuki
|
||||||
|
20603,Margalla,167,Suzuki
|
||||||
|
20604,Mehran,167,Suzuki
|
||||||
|
20605,Mighty Boy,167,Suzuki
|
||||||
|
20606,Potohar,167,Suzuki
|
||||||
|
20607,Santana,167,Suzuki
|
||||||
|
20608,SC100,167,Suzuki
|
||||||
|
20612,Beta,170,Tatra
|
||||||
|
20615,T87,170,Tatra
|
||||||
|
20616,Chenglong,173,Tianma
|
||||||
|
1820,AC,176,Toyota
|
||||||
|
2153,Master,176,Toyota
|
||||||
|
19582,Pixis,176,Toyota
|
||||||
|
20627,AA,176,Toyota
|
||||||
|
20628,AB,176,Toyota
|
||||||
|
20629,AE,176,Toyota
|
||||||
|
20630,Agya,176,Toyota
|
||||||
|
20633,Briska,176,Toyota
|
||||||
|
20634,Carri,176,Toyota
|
||||||
|
20637,Condor,176,Toyota
|
||||||
|
20644,Kijang,176,Toyota
|
||||||
|
20645,Lexcen,176,Toyota
|
||||||
|
20647,MasterAce,176,Toyota
|
||||||
|
20648,MiniAce,176,Toyota
|
||||||
|
20654,Quantum,176,Toyota
|
||||||
|
20655,Reiz,176,Toyota
|
||||||
|
20657,Space Cruiser,176,Toyota
|
||||||
|
20659,Stallion,176,Toyota
|
||||||
|
20660,Stout,176,Toyota
|
||||||
|
20661,Super,176,Toyota
|
||||||
|
20662,T100,176,Toyota
|
||||||
|
20663,Tamaraw FX,176,Toyota
|
||||||
|
20664,Tarago,176,Toyota
|
||||||
|
20665,Tazz,176,Toyota
|
||||||
|
20666,Tiara,176,Toyota
|
||||||
|
20668,Unser,176,Toyota
|
||||||
|
20670,Venture,176,Toyota
|
||||||
|
20671,Vienta,176,Toyota
|
||||||
|
20673,Zace,176,Toyota
|
||||||
|
22632,Karl,181,Vauxhall
|
||||||
|
22637, Signum,181,Vauxhall
|
||||||
|
20678,Country Buggy,184,Volkswagen
|
||||||
|
20958,Dune Buggy,184,Volkswagen
|
||||||
|
1934,140,185,Volvo
|
||||||
|
1937,260,185,Volvo
|
||||||
|
19301,120,185,Volvo
|
||||||
|
20693,340,185,Volvo
|
||||||
|
20694,360,185,Volvo
|
||||||
|
20695,Amazon,185,Volvo
|
||||||
|
20696,Duett,185,Volvo
|
||||||
|
20698,PV444/544,185,Volvo
|
||||||
|
20699,PV60,185,Volvo
|
||||||
|
20700,Megabusa,188,Westfield
|
||||||
|
20938,GT MF4,189,Wiesmann
|
||||||
|
1981,RX6400,192,Zotye
|
||||||
|
22619,21213,215,VAZ (Lada)
|
||||||
|
2024,2308 Ataman,216,GAZ
|
||||||
|
20710,3105 Volga,216,GAZ
|
||||||
|
20719,M-1,216,GAZ
|
||||||
|
20939,233001 Tigr,216,GAZ
|
||||||
|
20724,110,218,ZIL
|
||||||
|
20732,2315,223,Moskvich
|
||||||
|
20733,2335,223,Moskvich
|
||||||
|
20737,Moto stroller,224,SMZ
|
||||||
|
2272,Tropica Roadster,284,Renaissance Cars
|
||||||
|
19306,Trumpf,3664,Adler
|
||||||
|
20762,MPV,3755,Efini
|
||||||
|
20763,MS-6,3755,Efini
|
||||||
|
20764,MS-8,3755,Efini
|
||||||
|
20765,MS-9,3755,Efini
|
||||||
|
20766,RX-7,3755,Efini
|
||||||
|
20769,Bliss,3757,Groz
|
||||||
|
20770,Dacota,3757,Groz
|
||||||
|
20776,Vertus,3757,Groz
|
||||||
|
20781,Albaycín,3760,Hurtan
|
||||||
|
20790,522,3767,Nysa
|
||||||
|
20991,Other cars,3822,Other car
|
||||||
|
20992,Other russian machines,3822,Other car
|
||||||
|
20993,Self collected,3822,Other car
|
||||||
|
22524,124 GT,4146,Abarth
|
||||||
|
22526,124 Spider Turismo,4146,Abarth
|
||||||
|
22527,595,4146,Abarth
|
||||||
|
22528,595 Competizione,4146,Abarth
|
||||||
|
22529,595 Pista,4146,Abarth
|
||||||
|
22530,595 Turismo,4146,Abarth
|
||||||
|
22531,695 Biposto,4146,Abarth
|
||||||
|
22532,695 Rivale,4146,Abarth
|
||||||
|
22533,695 XSR Yamaha,4146,Abarth
|
||||||
|
22541,207A Boano Spyder Corsa,4146,Abarth
|
||||||
|
22542,750 GT Zagato,4146,Abarth
|
||||||
|
22543,1000 SP,4146,Abarth
|
||||||
|
22545,2000 SE027,4146,Abarth
|
||||||
|
22546,131 Rally,4146,Abarth
|
||||||
|
22547,Lancia Rally 037 Stradale,4146,Abarth
|
||||||
|
22548,Lancia Delta S4 Stradale (SE038),4146,Abarth
|
||||||
|
22549,500 Pogea Racing Ares,4146,Abarth
|
||||||
|
22585,Beijing BJ20,4147,Baic
|
||||||
|
22586,ES 210,4147,Baic
|
||||||
|
22588,Huansu S2,4147,Baic
|
||||||
|
22589,Huansu S3,4147,Baic
|
||||||
|
22590,Huansu S5,4147,Baic
|
||||||
|
431
exports/series_without_trims.csv
Normal file
@ -0,0 +1,431 @@
|
|||||||
|
serie_id,serie_name,model_id,model_name,make_id,make_name
|
||||||
|
53807,Crossover,11,MDX,2,Acura
|
||||||
|
47558,Sprint Coupe 2-doors,40,Giulietta,3,Alfa Romeo
|
||||||
|
47559,Sprint Speciale Coupe 2-doors,40,Giulietta,3,Alfa Romeo
|
||||||
|
47562,SVZ Coupe 2-doors,40,Giulietta,3,Alfa Romeo
|
||||||
|
47564,3 roadster 1-doors,55,Atom,6,Ariel
|
||||||
|
47565,3.5 roadster 1-doors,55,Atom,6,Ariel
|
||||||
|
2881,S liftback,67,Rapide,9,Aston Martin
|
||||||
|
8329,Avant hatchback,75,100,10,Audi
|
||||||
|
8331,Coupe,75,100,10,Audi
|
||||||
|
8332,Sedan,75,100,10,Audi
|
||||||
|
47567,Sedan,75,100,10,Audi
|
||||||
|
47569,Sedan 4-doors,75,100,10,Audi
|
||||||
|
5466,Sedan,78,80,10,Audi
|
||||||
|
5467,Sedan 2-doors,78,80,10,Audi
|
||||||
|
47571,Sedan 2-doors,78,80,10,Audi
|
||||||
|
47573,Sedan 4-doors,78,80,10,Audi
|
||||||
|
47574,wagon,78,80,10,Audi
|
||||||
|
47576,Sedan 2-doors,78,80,10,Audi
|
||||||
|
54107,Citycarver hatchback,80,A1,10,Audi
|
||||||
|
53743,wagon 5 doors,83,A4 allroad,10,Audi
|
||||||
|
54011,Avant wagon,84,A4,10,Audi
|
||||||
|
54012,Allroad quattro wagon,84,A4,10,Audi
|
||||||
|
53302,Sportback hatchback,100,RS 3,10,Audi
|
||||||
|
47589,Avant Nogaro selection wagon 5-doors,101,RS 4,10,Audi
|
||||||
|
53735,Sedan,108,S4,10,Audi
|
||||||
|
54013,Avant wagon,108,S4,10,Audi
|
||||||
|
53632,Coupe 2-doors,114,TT,10,Audi
|
||||||
|
53633,Roadster 2-doors,114,TT,10,Audi
|
||||||
|
53634,S Coupe 2-doors,114,TT,10,Audi
|
||||||
|
54110,R Coupe 2-doors,131,Continental,15,Bentley
|
||||||
|
54111,Coupe,131,Continental,15,Bentley
|
||||||
|
62954,Flying Spur Sedan,131,Continental,15,Bentley
|
||||||
|
5615,Sedan,186,Electra,25,Buick
|
||||||
|
67451,Crossover,239,CS35,32,Changan
|
||||||
|
5679,Sedan,250,Fora (A21),34,Chery
|
||||||
|
5684,Hatchback,255,QQ,34,Chery
|
||||||
|
47617,Hatchback 5-doors,259,Astra,35,Chevrolet
|
||||||
|
47620,Conversion minivan 4-doors,260,Astro,35,Chevrolet
|
||||||
|
5696,SUV,264,Blazer,35,Chevrolet
|
||||||
|
5697,SUV,264,Blazer,35,Chevrolet
|
||||||
|
14922,SUV,264,Blazer,35,Chevrolet
|
||||||
|
47623,K5 SUV 3-doors,264,Blazer,35,Chevrolet
|
||||||
|
47624,S-10 SUV 3-doors,264,Blazer,35,Chevrolet
|
||||||
|
47625,S-10 SUV 5-doors,264,Blazer,35,Chevrolet
|
||||||
|
47626,K5 SUV 3-doors,264,Blazer,35,Chevrolet
|
||||||
|
47627,K1500 SUV,264,Blazer,35,Chevrolet
|
||||||
|
47745,Station Wagon wagon,275,Classic,35,Chevrolet
|
||||||
|
47746,Sedan,275,Classic,35,Chevrolet
|
||||||
|
47747,Sedan,275,Classic,35,Chevrolet
|
||||||
|
47760,50th Anniversary cabriolet 2-doors,280,Corvette,35,Chevrolet
|
||||||
|
47761,50th Anniversary Coupe 2-doors,280,Corvette,35,Chevrolet
|
||||||
|
47898,SS targa 2-doors,297,Monte Carlo,35,Chevrolet
|
||||||
|
47899,SS Aerocoupe targa 2-doors,297,Monte Carlo,35,Chevrolet
|
||||||
|
47901,targa,297,Monte Carlo,35,Chevrolet
|
||||||
|
47915,Spyder hatchback 3-doors,298,Monza,35,Chevrolet
|
||||||
|
47916,Sport hatchback 3-doors,298,Monza,35,Chevrolet
|
||||||
|
47917,Hatchback,298,Monza,35,Chevrolet
|
||||||
|
47918,wagon,298,Monza,35,Chevrolet
|
||||||
|
54017,Sedan,298,Monza,35,Chevrolet
|
||||||
|
5761,Cabriolet,315,Tracker,35,Chevrolet
|
||||||
|
47951,SUV,315,Tracker,35,Chevrolet
|
||||||
|
53780,Crossover 5-doors,417,Winstorm,42,Daewoo
|
||||||
|
62956,Hatchback,428,Coo,44,Daihatsu
|
||||||
|
8511,Hatchback 5-doors,430,Cuore,44,Daihatsu
|
||||||
|
53618,Minivan,440,Move,44,Daihatsu
|
||||||
|
3199,Sedan,470,Stanza,47,Datsun
|
||||||
|
3200,Hatchback 5-doors,470,Stanza,47,Datsun
|
||||||
|
45393,Crossover,623,Edge,63,Ford
|
||||||
|
48042,RS wagon 5-doors,626,Escort,63,Ford
|
||||||
|
48043,RS wagon 3-doors,626,Escort,63,Ford
|
||||||
|
53452,Super Cab pickup 2-doors,658,Ranger,63,Ford
|
||||||
|
53453,SuperCrew pickup 4-doors,658,Ranger,63,Ford
|
||||||
|
6229,Hatchback 5-doors,687,MK Cross,67,Geely
|
||||||
|
6309,wagon,753,Accord,76,Honda
|
||||||
|
48145,US-spec Sedan 4-doors,753,Accord,76,Honda
|
||||||
|
48147,US-spec Sedan 4-doors,753,Accord,76,Honda
|
||||||
|
48148,Hatchback,753,Accord,76,Honda
|
||||||
|
48149,GXR Sedan 4-doors,753,Accord,76,Honda
|
||||||
|
48151,Sedan 4-doors,753,Accord,76,Honda
|
||||||
|
48155,Hatchback,759,City,76,Honda
|
||||||
|
48156,Cabriolet,759,City,76,Honda
|
||||||
|
6350,Shuttle wagon 5-doors,761,Civic,76,Honda
|
||||||
|
6352,Hatchback,761,Civic,76,Honda
|
||||||
|
15285,Sedan 2-doors,761,Civic,76,Honda
|
||||||
|
48183,Si Sedan 4-doors,761,Civic,76,Honda
|
||||||
|
48185,RS Sedan 2-doors,761,Civic,76,Honda
|
||||||
|
48187,Sedan 4-doors,761,Civic,76,Honda
|
||||||
|
62957,Hatchback,765,CR-Z,76,Honda
|
||||||
|
53781,Crossover 3-doors,777,HR-V,76,Honda
|
||||||
|
48227,Pickup,784,Life,76,Honda
|
||||||
|
48228,Hatchback,784,Life,76,Honda
|
||||||
|
48229,Sedan 4-doors,784,Life,76,Honda
|
||||||
|
48230,Sedan 2-doors,784,Life,76,Honda
|
||||||
|
1094,Minivan,811,Zest,76,Honda
|
||||||
|
48295,Sedan,831,Grandeur,79,Hyundai
|
||||||
|
3525,Hatchback 5-doors,906,"J3 (Tongyue,Tojoy)",87,JAC
|
||||||
|
6717,Sedan,1047,MKZ,102,Lincoln
|
||||||
|
14997,Sedan,1047,MKZ,102,Lincoln
|
||||||
|
48421,Stretch Limousine,1049,Town Car,102,Lincoln
|
||||||
|
54135,Coupe,1106,Ghibli,111,Maserati
|
||||||
|
3660,Hatchback,1125,323,113,Mazda
|
||||||
|
6809,Hatchback 3-doors,1125,323,113,Mazda
|
||||||
|
6813,wagon,1125,323,113,Mazda
|
||||||
|
6814,Hatchback 5-doors,1125,323,113,Mazda
|
||||||
|
6827,Sedan,1129,626,113,Mazda
|
||||||
|
48449,Liftback,1129,626,113,Mazda
|
||||||
|
6832,Sedan,1131,929,113,Mazda
|
||||||
|
48453,Hatchback,1132,Atenza,113,Mazda
|
||||||
|
48455,Hatchback,1132,Atenza,113,Mazda
|
||||||
|
48459,Hatchback,1132,Atenza,113,Mazda
|
||||||
|
48467,Double Cab pickup 4-doors,1137,B-Series,113,Mazda
|
||||||
|
48469,Freestyle Cab pickup 4-doors,1137,B-Series,113,Mazda
|
||||||
|
48472,Pickup,1137,B-Series,113,Mazda
|
||||||
|
48473,Pickup,1137,B-Series,113,Mazda
|
||||||
|
48474,Pickup,1137,B-Series,113,Mazda
|
||||||
|
48490,Sedan,1142,Capella,113,Mazda
|
||||||
|
48491,Coupe,1142,Capella,113,Mazda
|
||||||
|
48492,Sedan,1142,Capella,113,Mazda
|
||||||
|
8795,wagon,1156,Familia,113,Mazda
|
||||||
|
45157,Hatchback 3-doors,1156,Familia,113,Mazda
|
||||||
|
48496,Field Break hatchback 5-doors,1156,Familia,113,Mazda
|
||||||
|
48500,Hatchback 3-doors,1156,Familia,113,Mazda
|
||||||
|
48501,Hatchback 5-doors,1156,Familia,113,Mazda
|
||||||
|
48502,Hatchback 3-doors,1156,Familia,113,Mazda
|
||||||
|
48503,Hatchback 5-doors,1156,Familia,113,Mazda
|
||||||
|
48504,Hatchback 3-doors,1156,Familia,113,Mazda
|
||||||
|
48505,Presto Coupe 2-doors,1156,Familia,113,Mazda
|
||||||
|
48506,Grand Coupe 2-doors,1156,Familia,113,Mazda
|
||||||
|
48507,Grand Sedan 4-doors,1156,Familia,113,Mazda
|
||||||
|
48508,Presto Sedan 4-doors,1156,Familia,113,Mazda
|
||||||
|
48509,Grand Coupe 2-doors,1156,Familia,113,Mazda
|
||||||
|
48510,Presto Coupe 2-doors,1156,Familia,113,Mazda
|
||||||
|
48511,Presto Sedan 4-doors,1156,Familia,113,Mazda
|
||||||
|
48512,Presto Rotary Coupe 2-doors,1156,Familia,113,Mazda
|
||||||
|
48513,Coupe 2-doors,1156,Familia,113,Mazda
|
||||||
|
48514,Rotary Sedan 4-doors,1156,Familia,113,Mazda
|
||||||
|
48515,Presto Coupe 2-doors,1156,Familia,113,Mazda
|
||||||
|
48516,Sedan 2-doors,1156,Familia,113,Mazda
|
||||||
|
48517,Sedan 4-doors,1156,Familia,113,Mazda
|
||||||
|
48518,Rotary Coupe 2-doors,1156,Familia,113,Mazda
|
||||||
|
48519,Sedan,1156,Familia,113,Mazda
|
||||||
|
48520,Sedan 2-doors,1156,Familia,113,Mazda
|
||||||
|
48521,Pickup,1156,Familia,113,Mazda
|
||||||
|
48522,Coupe,1156,Familia,113,Mazda
|
||||||
|
48523,Sedan 4-doors,1156,Familia,113,Mazda
|
||||||
|
48532,Coupe,1164,MX-6,113,Mazda
|
||||||
|
1564,Marvie SUV,1169,Proceed,113,Mazda
|
||||||
|
8804,Coupe 2-doors,1173,RX-7,113,Mazda
|
||||||
|
8805,Coupe,1173,RX-7,113,Mazda
|
||||||
|
48536,Cabriolet,1173,RX-7,113,Mazda
|
||||||
|
48538,Coupe,1173,RX-7,113,Mazda
|
||||||
|
67452,Field Break crossover 5-doors,1178,Tribute,113,Mazda
|
||||||
|
48547,Hatchback,1232,3,119,MG
|
||||||
|
6999,Hatchback 3-doors,1250,M.Go,120,Microcar
|
||||||
|
1676,Hatchback 3-doors,1252,MC,120,Microcar
|
||||||
|
48548,Cooper cabriolet,1255,Cabrio,122,Mini
|
||||||
|
48549,Cooper cabriolet,1255,Cabrio,122,Mini
|
||||||
|
7022,Hatchback,1271,Colt,123,Mitsubishi
|
||||||
|
7023,Hatchback 3-doors,1271,Colt,123,Mitsubishi
|
||||||
|
47314,Hatchback 5-doors,1271,Colt,123,Mitsubishi
|
||||||
|
48564,Ralliart hatchback 3-doors,1271,Colt,123,Mitsubishi
|
||||||
|
48565,Turbo hatchback 3-doors,1271,Colt,123,Mitsubishi
|
||||||
|
48566,Hatchback 3-doors,1271,Colt,123,Mitsubishi
|
||||||
|
53876,Minivan,1274,Delica,123,Mitsubishi
|
||||||
|
48579,Sedan,1284,Galant,123,Mitsubishi
|
||||||
|
48580,wagon,1284,Galant,123,Mitsubishi
|
||||||
|
48581,Coupe,1284,Galant,123,Mitsubishi
|
||||||
|
48582,JDM wagon 3-doors,1284,Galant,123,Mitsubishi
|
||||||
|
48617,Rothmans Special SUV 3-doors,1301,Pajero,123,Mitsubishi
|
||||||
|
15759,Nismo Coupe 2-doors,1352,350Z,127,Nissan
|
||||||
|
48635,Hatchback 3-doors,1356,Almera,127,Nissan
|
||||||
|
48636,Sedan,1356,Almera,127,Nissan
|
||||||
|
48637,Hatchback 5-doors,1356,Almera,127,Nissan
|
||||||
|
48647,ARX Hardtop,1364,Bluebird,127,Nissan
|
||||||
|
48705,Hatchback,1367,Cherry,127,Nissan
|
||||||
|
1845,Hatchback,1386,Leaf,127,Nissan
|
||||||
|
48780,wagon,1391,Maxima,127,Nissan
|
||||||
|
53786,Crossover,1395,Murano,127,Nissan
|
||||||
|
45849,Sedan,1422,Admiral,130,Opel
|
||||||
|
48806,Cabriolet 4-doors,1422,Admiral,130,Opel
|
||||||
|
3882,Sedan 4-doors,1426,Ascona,130,Opel
|
||||||
|
3884,Hatchback,1426,Ascona,130,Opel
|
||||||
|
7276,Sedan 2-doors,1426,Ascona,130,Opel
|
||||||
|
7277,Sedan 4-doors,1426,Ascona,130,Opel
|
||||||
|
48808,Cabriolet,1426,Ascona,130,Opel
|
||||||
|
48809,Hatchback,1426,Ascona,130,Opel
|
||||||
|
48810,Sedan 2-doors,1426,Ascona,130,Opel
|
||||||
|
48812,Sedan 4-doors,1426,Ascona,130,Opel
|
||||||
|
48815,Sedan 4-doors,1426,Ascona,130,Opel
|
||||||
|
48817,Sedan 4-doors,1426,Ascona,130,Opel
|
||||||
|
53779,Cabriolet,1426,Ascona,130,Opel
|
||||||
|
48823,OPC cabriolet 2-doors,1427,Astra,130,Opel
|
||||||
|
7307,Sedan 2-doors,1432,Commodore,130,Opel
|
||||||
|
48836,Pickup,1433,Corsa,130,Opel
|
||||||
|
48838,Sedan,1433,Corsa,130,Opel
|
||||||
|
48840,Sedan,1433,Corsa,130,Opel
|
||||||
|
48841,Pickup,1433,Corsa,130,Opel
|
||||||
|
48843,Hatchback 5-doors,1433,Corsa,130,Opel
|
||||||
|
48844,Hatchback 3-doors,1433,Corsa,130,Opel
|
||||||
|
48845,GSi hatchback 3-doors,1433,Corsa,130,Opel
|
||||||
|
48847,Hatchback 3-doors,1433,Corsa,130,Opel
|
||||||
|
48848,GSi hatchback 3-doors,1433,Corsa,130,Opel
|
||||||
|
48849,Sedan 4-doors,1433,Corsa,130,Opel
|
||||||
|
48850,Sedan 2-doors,1433,Corsa,130,Opel
|
||||||
|
48851,GT hatchback 3-doors,1433,Corsa,130,Opel
|
||||||
|
54084,Hatchback 5 doors,1433,Corsa,130,Opel
|
||||||
|
1934,GSE Coupe 3-doors,1443,Monza,130,Opel
|
||||||
|
48874,Coupe,1443,Monza,130,Opel
|
||||||
|
48875,Coupe,1443,Monza,130,Opel
|
||||||
|
3916,Sedan,1445,Rekord,130,Opel
|
||||||
|
46798,wagon 5-doors,1445,Rekord,130,Opel
|
||||||
|
46803,wagon,1445,Rekord,130,Opel
|
||||||
|
48878,wagon,1445,Rekord,130,Opel
|
||||||
|
48882,wagon,1445,Rekord,130,Opel
|
||||||
|
48883,Coupe,1445,Rekord,130,Opel
|
||||||
|
48884,wagon,1445,Rekord,130,Opel
|
||||||
|
48885,Sedan 4-doors,1445,Rekord,130,Opel
|
||||||
|
48886,Sedan,1445,Rekord,130,Opel
|
||||||
|
48887,Sedan,1446,Senator,130,Opel
|
||||||
|
48906,Van hatchback 3-doors,1474,206,135,Peugeot
|
||||||
|
48912,Sedan,1482,307,135,Peugeot
|
||||||
|
48914,SW wagon,1483,308,135,Peugeot
|
||||||
|
8988,Coupe,1517,Firebird,138,Pontiac
|
||||||
|
48939,Cabriolet,1517,Firebird,138,Pontiac
|
||||||
|
48940,Trans Am T-Roof targa,1517,Firebird,138,Pontiac
|
||||||
|
48941,Trans Am Coupe 2-doors,1517,Firebird,138,Pontiac
|
||||||
|
47375,R Coupe 2-doors,1536,911,139,Porsche
|
||||||
|
49027,Safari hatchback 5-doors,1582,4,147,Renault
|
||||||
|
49028,Jogging hatchback 5-doors,1582,4,147,Renault
|
||||||
|
49029,Hatchback,1582,4,147,Renault
|
||||||
|
49030,Hatchback,1582,4,147,Renault
|
||||||
|
49032,Plein Air cabriolet,1582,4,147,Renault
|
||||||
|
49034,Hatchback,1582,4,147,Renault
|
||||||
|
54119,Minivan,1590,Espace,147,Renault
|
||||||
|
53949,Stepway,1603,Sandero,147,Renault
|
||||||
|
49082,Conquest minivan 5-doors,1604,Scenic,147,Renault
|
||||||
|
4095,Hatchback 5-doors,1624,200 Series,151,Rover
|
||||||
|
4127,Hatchback 5-doors,1648,Astra,155,Saturn
|
||||||
|
4131,Coupe,1655,SC,155,Saturn
|
||||||
|
54092,Hatchback,1673,Ibiza,157,SEAT
|
||||||
|
53414,Preliator Coupe 2-doors,1697,C8,163,Spyker
|
||||||
|
67455,STi crossover 5-doors,1716,Forester,166,Subaru
|
||||||
|
67456,XL-7 crossover 5-doors,1745,Grand Vitara,167,Suzuki
|
||||||
|
7711,Roadster,1758,Swift,167,Suzuki
|
||||||
|
9175,Hatchback 3-doors,1761,Wagon R,167,Suzuki
|
||||||
|
49181,TAG Heuer Sport roadster 2-doors,1783,Roadster,172,Tesla
|
||||||
|
49182,Sport roadster 2-doors,1783,Roadster,172,Tesla
|
||||||
|
49183,Roadster,1783,Roadster,172,Tesla
|
||||||
|
47428,SUV,1791,4Runner,176,Toyota
|
||||||
|
49184,SUV 5-doors,1791,4Runner,176,Toyota
|
||||||
|
49185,SUV 3-doors,1791,4Runner,176,Toyota
|
||||||
|
49187,Pickup,1791,4Runner,176,Toyota
|
||||||
|
62983,SUV,1791,4Runner,176,Toyota
|
||||||
|
7783,wagon,1810,Camry,176,Toyota
|
||||||
|
15350,CN-spec Sedan 4-doors,1810,Camry,176,Toyota
|
||||||
|
49208,CN-spec Sedan 4-doors,1810,Camry,176,Toyota
|
||||||
|
7795,II Sedan 4-doors,1812,Carina,176,Toyota
|
||||||
|
7797,Sedan 2-doors,1812,Carina,176,Toyota
|
||||||
|
7798,II liftback,1812,Carina,176,Toyota
|
||||||
|
7801,Sedan 4-doors,1812,Carina,176,Toyota
|
||||||
|
47431,Sedan 4-doors,1812,Carina,176,Toyota
|
||||||
|
53394,E wagon,1812,Carina,176,Toyota
|
||||||
|
49243,Hardtop,1818,Corolla,176,Toyota
|
||||||
|
54097,Liftback,1818,Corolla,176,Toyota
|
||||||
|
53881,Van wagon,1821,Corona,176,Toyota
|
||||||
|
53884,Hardtop Coupe,1821,Corona,176,Toyota
|
||||||
|
54032,Van wagon,1821,Corona,176,Toyota
|
||||||
|
49252,Coupe,1823,Cressida,176,Toyota
|
||||||
|
7866,JDM Hardtop 4-doors,1826,Crown,176,Toyota
|
||||||
|
49267,JDM Hardtop,1826,Crown,176,Toyota
|
||||||
|
49287,TRD Special Edition SUV 5-doors,1832,FJ Cruiser,176,Toyota
|
||||||
|
49288,"""Trail Teams"" SUV 5-doors",1832,FJ Cruiser,176,Toyota
|
||||||
|
49297,Combi minivan,1839,Hiace,176,Toyota
|
||||||
|
49300,Minivan 4-doors,1839,Hiace,176,Toyota
|
||||||
|
49302,Combi minivan,1839,Hiace,176,Toyota
|
||||||
|
49303,Minivan 4-doors,1839,Hiace,176,Toyota
|
||||||
|
49304,Combi minivan,1839,Hiace,176,Toyota
|
||||||
|
54033,SUV,1840,Highlander,176,Toyota
|
||||||
|
7911,HJ47 cabriolet 2-doors,1849,Land Cruiser,176,Toyota
|
||||||
|
4290,Cabriolet,1852,P 601,177,Trabant
|
||||||
|
49359,"""Weltmeister"" Sedan 2-doors",1900,Beetle,184,Volkswagen
|
||||||
|
47448,Tramper minivan 5-doors,1902,Caddy,184,Volkswagen
|
||||||
|
49371,Tramper Maxi minivan 5-doors,1902,Caddy,184,Volkswagen
|
||||||
|
49385,Sedan 2-doors,1906,Fox,184,Volkswagen
|
||||||
|
53969,Minivan,1915,Multivan,184,Volkswagen
|
||||||
|
67457,Crossover 5-doors,1927,Tiguan,184,Volkswagen
|
||||||
|
2678,Coupe,1972,GT MF5,189,Wiesmann
|
||||||
|
4579,Cabriolet 4-doors,2034,69,216,GAZ
|
||||||
|
9409,wagon 5-doors,2076,426,223,Moskvich
|
||||||
|
49489,Sedan,2110,S30,52,DongFeng
|
||||||
|
49492,Minivan,2117,Prairie,127,Nissan
|
||||||
|
49509,Milano X1 hatchback 3-doors,2122,Pulsar,127,Nissan
|
||||||
|
67453,Crossover 5-doors,2123,Qashqai,127,Nissan
|
||||||
|
49497,SSS hatchback,2130,Sentra,127,Nissan
|
||||||
|
9493,Sedan,2136,Stanza,127,Nissan
|
||||||
|
9494,Hatchback,2136,Stanza,127,Nissan
|
||||||
|
49555,Sedan,2136,Stanza,127,Nissan
|
||||||
|
9527,wagon,2150,Mark II,176,Toyota
|
||||||
|
49612,TRD hatchback 5-doors,2154,Matrix,176,Toyota
|
||||||
|
62919,S\XRS hatchback 5-doors,2154,Matrix,176,Toyota
|
||||||
|
49636,Coupe,2193,Sprinter,176,Toyota
|
||||||
|
62920,Hatchback,2211,Voltz,176,Toyota
|
||||||
|
49673,Minivan,2218,Yaris Verso,176,Toyota
|
||||||
|
49678,SS Regular Cab pickup 2-doors,2220,Silverado,35,Chevrolet
|
||||||
|
49753,Minivan,2235,Caravelle,184,Volkswagen
|
||||||
|
49759,Minivan,2245,Urvan,127,Nissan
|
||||||
|
54078,Sedan,2286,XE,88,Jaguar
|
||||||
|
15557,Hatchback 5-doors,2328,Focus ST,63,Ford
|
||||||
|
15558,wagon 5-doors,2328,Focus ST,63,Ford
|
||||||
|
15563,Hatchback 3-doors,2328,Focus ST,63,Ford
|
||||||
|
15520,Coupe,2332,XKR,88,Jaguar
|
||||||
|
15521,Cabriolet,2332,XKR,88,Jaguar
|
||||||
|
15461,Hatchback 5-doors,2337,3 MPS,113,Mazda
|
||||||
|
15599,Hatchback 3-doors,2356,Corsa OPC,130,Opel
|
||||||
|
15437,Minivan,2375,Corolla Spacio,176,Toyota
|
||||||
|
2093,Roadster,2388,918 Spyder,139,Porsche
|
||||||
|
45007,Sedan Long,18882,XJR,88,Jaguar
|
||||||
|
67454,Crossover 5-doors,19208,Tivoli,165,SsangYong
|
||||||
|
49775,SS Sport trim pickup 2-doors,19269,El Camino,35,Chevrolet
|
||||||
|
53587,Hatchback,19280,S3,87,JAC
|
||||||
|
50973,Fastback,19305,M-72,216,GAZ
|
||||||
|
46446,Coupe,19517,Toronado,129,Oldsmobile
|
||||||
|
46570,Hardtop,19570,Ascot Innova,76,Honda
|
||||||
|
46687,Sedan,19617,Kapitan,130,Opel
|
||||||
|
46815,Sedan,19617,Kapitan,130,Opel
|
||||||
|
49796,Sedan,19617,Kapitan,130,Opel
|
||||||
|
49877,Coupe,19770,Coupe S,10,Audi
|
||||||
|
50008,Rampside pickup,19832,Corvair,35,Chevrolet
|
||||||
|
50014,Crew Cab pickup 4-doors,19833,D20,35,Chevrolet
|
||||||
|
50015,Pickup 2-doors,19833,D20,35,Chevrolet
|
||||||
|
50020,SUV 5-doors,19838,Grand Vitara,35,Chevrolet
|
||||||
|
50028,Sedan,19843,Lova,35,Chevrolet
|
||||||
|
50083,Sedan,19852,Optra,35,Chevrolet
|
||||||
|
50087,SUV,19854,Samurai,35,Chevrolet
|
||||||
|
50088,Cabriolet,19854,Samurai,35,Chevrolet
|
||||||
|
50091,Sedan,19860,Swift,35,Chevrolet
|
||||||
|
50092,Hatchback,19860,Swift,35,Chevrolet
|
||||||
|
50095,Pickup,19863,Tornado,35,Chevrolet
|
||||||
|
50096,SUV 5-doors,19864,Trooper,35,Chevrolet
|
||||||
|
50097,Cabriolet,19864,Trooper,35,Chevrolet
|
||||||
|
50098,SUV 5-doors,19864,Trooper,35,Chevrolet
|
||||||
|
50099,SUV 3-doors,19864,Trooper,35,Chevrolet
|
||||||
|
50126,Limousine,19945,DH27,45,Daimler
|
||||||
|
50133,Hatchback,20010,Xiali N7,59,FAW
|
||||||
|
50151,F-150 Tremor pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50161,F-150 SVT Lighting pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50162,F-150 SuperCab pickup 4-doors,20065,F-1,63,Ford
|
||||||
|
50163,F-150 RegularCab pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50164,F-350 SuperCab pickup 4-doors,20065,F-1,63,Ford
|
||||||
|
50165,F-150 SuperCab pickup 4-doors,20065,F-1,63,Ford
|
||||||
|
50166,F-250 RegularCab pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50167,F-150 RegularCab pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50168,F-100 RegularCab pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50169,F-150 RegularCab pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50170,F-100 RegularCab pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50171,F-100 SuperCab pickup 4-doors,20065,F-1,63,Ford
|
||||||
|
50172,F-250 SuperCab pickup 4-doors,20065,F-1,63,Ford
|
||||||
|
50173,F-100 RegularCab pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50174,F-100 RegularCab pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50175,F-100 pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50176,F-100 pickup 2-doors,20065,F-1,63,Ford
|
||||||
|
50177,Pickup,20065,F-1,63,Ford
|
||||||
|
53702,Sedan,20099,GE,67,Geely
|
||||||
|
50198,Sedan,20107,Voleex C50,71,Great Wall
|
||||||
|
50215,Hatchback,20177,Avega,79,Hyundai
|
||||||
|
50239,Sedan,20197,Langdong,79,Hyundai
|
||||||
|
50257,Sedan,20208,Sonica,79,Hyundai
|
||||||
|
50266,Minivan,20211,TQ,79,Hyundai
|
||||||
|
53803,Pickup,20248,Gladiator,89,Jeep
|
||||||
|
50350,Coupe,20309,Berlinetta,108,Marlin
|
||||||
|
50351,Cabriolet,20310,RoadSter,108,Marlin
|
||||||
|
50377,AMG hatchback 5-doors,20342,A-Class,116,Mercedes-Benz
|
||||||
|
62911,AMG wagon 5-doors,20350,E-Class,116,Mercedes-Benz
|
||||||
|
50540,Cabriolet,20355,G-Class,116,Mercedes-Benz
|
||||||
|
50580,AMG roadster 2-doors,20362,SL-Class,116,Mercedes-Benz
|
||||||
|
50629,Coupe,20364,S-Class,116,Mercedes-Benz
|
||||||
|
50630,Sedan,20364,S-Class,116,Mercedes-Benz
|
||||||
|
53805,Maybach cabriolet 2-doors,20364,S-Class,116,Mercedes-Benz
|
||||||
|
50654,Minivan,20429,Altra,127,Nissan
|
||||||
|
50656,Sedan,20433,Auster,127,Nissan
|
||||||
|
50657,Hatchback,20433,Auster,127,Nissan
|
||||||
|
50660,JX Sedan,20433,Auster,127,Nissan
|
||||||
|
50661,JX hatchback,20433,Auster,127,Nissan
|
||||||
|
50664,Liftback,20433,Auster,127,Nissan
|
||||||
|
50665,Sedan,20433,Auster,127,Nissan
|
||||||
|
50705,Hatchback,20451,Latio,127,Nissan
|
||||||
|
50732,Liftback,20465,Violet,127,Nissan
|
||||||
|
50733,Hatchback,20465,Violet,127,Nissan
|
||||||
|
50734,wagon,20465,Violet,127,Nissan
|
||||||
|
50736,Sedan,20465,Violet,127,Nissan
|
||||||
|
50740,Hatchback,20466,Violet Liberta,127,Nissan
|
||||||
|
50752,Sedan,20478,Super 6,130,Opel
|
||||||
|
50768,GTA cabriolet 2-doors,20517,Alliance,147,Renault
|
||||||
|
50769,Cabriolet,20517,Alliance,147,Renault
|
||||||
|
50770,GTA Sedan 2-doors,20517,Alliance,147,Renault
|
||||||
|
50771,Sedan 4-doors,20517,Alliance,147,Renault
|
||||||
|
50772,Sedan,20518,Celtaquatre,147,Renault
|
||||||
|
50773,Prairie wagon 5-doors,20519,Colorale,147,Renault
|
||||||
|
50775,Sedan,20521,Juvaquatre,147,Renault
|
||||||
|
50777,wagon,20521,Juvaquatre,147,Renault
|
||||||
|
50778,Hatchback 5-doors,20522,Le Car,147,Renault
|
||||||
|
50819,Sedan,20527,Monaquatre,147,Renault
|
||||||
|
50820,Sedan,20528,Primaquatre,147,Renault
|
||||||
|
50821,Sport Sedan 4-doors,20528,Primaquatre,147,Renault
|
||||||
|
50822,Sedan,20528,Primaquatre,147,Renault
|
||||||
|
50896,wagon,20683,Magotan,184,Volkswagen
|
||||||
|
50910,Coupe,20686,Quantum,184,Volkswagen
|
||||||
|
50927,Pickup,20689,Saveiro,184,Volkswagen
|
||||||
|
50928,Pickup,20689,Saveiro,184,Volkswagen
|
||||||
|
50929,Pickup,20689,Saveiro,184,Volkswagen
|
||||||
|
50935,Limousine,20702,13 Chaika,216,GAZ
|
||||||
|
50936,Cabriolet,20702,13 Chaika,216,GAZ
|
||||||
|
50937,Cabriolet,20703,14 Chaika,216,GAZ
|
||||||
|
50972,Sedan,20720,M-12 ZiM,216,GAZ
|
||||||
|
50974,Fastback,20721,M-20 Pobeda,216,GAZ
|
||||||
|
50977,Fastback,20721,M-20 Pobeda,216,GAZ
|
||||||
|
51009,Roadster,20752,3000,3749,Austin Healey
|
||||||
|
51016,Board,20760,V22,3754,DFSK
|
||||||
|
51017,Van,20761,V25,3754,DFSK
|
||||||
|
51019,Pickup,20771,Fox,3757,Groz
|
||||||
|
51021,SUV,20773,Rocky,3757,Groz
|
||||||
|
51022,SUV,20774,Shuttle,3757,Groz
|
||||||
|
51023,Pickup,20775,Target,3757,Groz
|
||||||
|
53705,Crossover,22512,SX11,67,Geely
|
||||||
|
53713,Crossover,22515,X80,101,Lifan
|
||||||
|
53731,Coupe,22544,2000 Pininfarina,4146,Abarth
|
||||||
|
54049,Crossover,22604,FY11,67,Geely
|
||||||
|
14597,Sedan,22971,Bonus 3 (E3/A19),34,Chery
|
||||||
|
63668,Roadster TR4A,23165,TR4,179,Triumph
|
||||||
|
71839,Pickup Double cabin,26675,F30,4948,Changan Kuayue (KYC)
|
||||||
|
248
inventory/car_hierarchy_analysis.ipynb
Normal file
@ -0,0 +1,248 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "code",
|
||||||
|
"outputs": [],
|
||||||
|
"execution_count": null,
|
||||||
|
"source": [
|
||||||
|
"# Setup Django environment\n",
|
||||||
|
"import os\n",
|
||||||
|
"import sys\n",
|
||||||
|
"import django\n",
|
||||||
|
"\n",
|
||||||
|
"# Set up Django environment\n",
|
||||||
|
"os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'car_inventory.settings')\n",
|
||||||
|
"django.setup()\n",
|
||||||
|
"\n",
|
||||||
|
"# Import models\n",
|
||||||
|
"from inventory.models import CarMake, CarModel, CarSerie, CarTrim"
|
||||||
|
],
|
||||||
|
"id": "64ce4f8ed9e90534"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "code",
|
||||||
|
"outputs": [],
|
||||||
|
"execution_count": null,
|
||||||
|
"source": [
|
||||||
|
"# Get all car makes\n",
|
||||||
|
"all_makes = CarMake.objects.all()\n",
|
||||||
|
"total_makes = all_makes.count()\n",
|
||||||
|
"\n",
|
||||||
|
"# Find makes without models using annotations\n",
|
||||||
|
"from django.db.models import Count\n",
|
||||||
|
"makes_without_models = CarMake.objects.annotate(model_count=Count('carmodel')).filter(model_count=0)\n",
|
||||||
|
"makes_without_models_count = makes_without_models.count()\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"Total car makes: {total_makes}\")\n",
|
||||||
|
"print(f\"Car makes without models: {makes_without_models_count} ({makes_without_models_count/total_makes*100:.2f}%)\")\n",
|
||||||
|
"\n",
|
||||||
|
"# Display the first 10 makes without models\n",
|
||||||
|
"if makes_without_models:\n",
|
||||||
|
" print(\"\\nSample of car makes without models:\")\n",
|
||||||
|
" for make in makes_without_models[:10]:\n",
|
||||||
|
" print(f"
|
||||||
|
],
|
||||||
|
"id": "7807a14272fbf44b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "code",
|
||||||
|
"outputs": [],
|
||||||
|
"execution_count": null,
|
||||||
|
"source": [
|
||||||
|
"# Get all car models\n",
|
||||||
|
"all_models = CarModel.objects.all()\n",
|
||||||
|
"total_models = all_models.count()\n",
|
||||||
|
"\n",
|
||||||
|
"# Find models without series using annotations\n",
|
||||||
|
"models_without_series = CarModel.objects.annotate(serie_count=Count('carserie')).filter(serie_count=0)\n",
|
||||||
|
"models_without_series_count = models_without_series.count()\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"\\nTotal car models: {total_models}\")\n",
|
||||||
|
"print(f\"Car models without series: {models_without_series_count} ({models_without_series_count/total_models*100:.2f}%)\")\n",
|
||||||
|
"\n",
|
||||||
|
"# Display the first 10 models without series\n",
|
||||||
|
"if models_without_series:\n",
|
||||||
|
" print(\"\\nSample of car models without series:\")\n",
|
||||||
|
" for model in models_without_series[:10]:\n",
|
||||||
|
" print(f\"- {model.name} (Make: {model.id_car_make."
|
||||||
|
],
|
||||||
|
"id": "318b5426d54f0705"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "code",
|
||||||
|
"outputs": [],
|
||||||
|
"execution_count": null,
|
||||||
|
"source": [
|
||||||
|
"# Get all car series\n",
|
||||||
|
"all_series = CarSerie.objects.all()\n",
|
||||||
|
"total_series = all_series.count()\n",
|
||||||
|
"\n",
|
||||||
|
"# Find series without trims using annotations\n",
|
||||||
|
"series_without_trims = CarSerie.objects.annotate(trim_count=Count('cartrim')).filter(trim_count=0)\n",
|
||||||
|
"series_without_trims_count = series_without_trims.count()\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"\\nTotal car series: {total_series}\")\n",
|
||||||
|
"print(f\"Car series without trims: {series_without_trims_count} ({series_without_trims_count/total_series*100:.2f}%)\")\n",
|
||||||
|
"\n",
|
||||||
|
"# Display the first 10 series without trims\n",
|
||||||
|
"if series_without_trims:\n",
|
||||||
|
" print(\"\\nSample of car series without trims:\")\n",
|
||||||
|
" for serie in series_without_trims[:10]:\n",
|
||||||
|
" print(f\"- {serie.name} (Model: {serie.id_car_model.name}, Make: {serie.id_car_model.id_car_make."
|
||||||
|
],
|
||||||
|
"id": "30eaf3383d2b34e1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "code",
|
||||||
|
"outputs": [],
|
||||||
|
"execution_count": null,
|
||||||
|
"source": [
|
||||||
|
"import matplotlib.pyplot as plt\n",
|
||||||
|
"import numpy as np\n",
|
||||||
|
"\n",
|
||||||
|
"# Data for the chart\n",
|
||||||
|
"categories = ['Makes', 'Models', 'Series']\n",
|
||||||
|
"total_counts = [total_makes, total_models, total_series]\n",
|
||||||
|
"empty_counts = [makes_without_models_count, models_without_series_count, series_without_trims_count]\n",
|
||||||
|
"with_children_counts = [total_makes - makes_without_models_count,\n",
|
||||||
|
" total_models - models_without_series_count,\n",
|
||||||
|
" total_series - series_without_trims_count]\n",
|
||||||
|
"\n",
|
||||||
|
"# Create a figure with two subplots\n",
|
||||||
|
"fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6))\n",
|
||||||
|
"\n",
|
||||||
|
"# Bar chart showing total vs. without children\n",
|
||||||
|
"x = np.arange(len(categories))\n",
|
||||||
|
"width = 0.35\n",
|
||||||
|
"\n",
|
||||||
|
"ax1.bar(x - width/2, total_counts, width, label='Total')\n",
|
||||||
|
"ax1.bar(x + width/2, empty_counts, width, label='Without children')\n",
|
||||||
|
"ax1.set_xticks(x)\n",
|
||||||
|
"ax1.set_xticklabels(categories)\n",
|
||||||
|
"ax1.set_ylabel('Count')\n",
|
||||||
|
"ax1.set_title('Car Hierarchy Analysis')\n",
|
||||||
|
"ax1.legend()\n",
|
||||||
|
"\n",
|
||||||
|
"# Pie charts showing percentage with/without children\n",
|
||||||
|
"labels = ['With children', 'Without children']\n",
|
||||||
|
"sizes = [[with_children_counts[i], empty_counts[i]] for i in range(3)]\n",
|
||||||
|
"colors = [['#66b3ff', '#ff9999'], ['#99ff99', '#ffcc99'], ['#c2c2f0', '#ffb3e6']]\n",
|
||||||
|
"\n",
|
||||||
|
"for i, category in enumerate(categories):\n",
|
||||||
|
" if i == 0:\n",
|
||||||
|
" ax2.pie(sizes[i], labels=labels, colors=colors[i], autopct='%1.1f%%',\n",
|
||||||
|
" startangle=90, wedgeprops={'alpha':0.7})\n",
|
||||||
|
" centre_circle = plt.Circle((0,0),0.70,fc='white')\n",
|
||||||
|
" ax2.add_patch(centre_circle)\n",
|
||||||
|
" ax2.text(0, 0, category, horizontalalignment='center', verticalalignment='center')\n",
|
||||||
|
" else:\n",
|
||||||
|
" # Calculate position for smaller pie charts\n",
|
||||||
|
" x_offset = 1.2 * (i-1)\n",
|
||||||
|
" ax2.pie(sizes[i], colors=colors[i], autopct='%1.1f%%',\n",
|
||||||
|
" startangle=90, wedgeprops={'alpha':0.7},\n",
|
||||||
|
" center=(x_offset, 0), radius=0.5)\n",
|
||||||
|
" centre_circle = plt.Circle((x_offset,0),0.35,fc='white')\n",
|
||||||
|
" ax2.add_patch(centre_circle)\n",
|
||||||
|
" ax2.text(x_offset, 0, category, horizontalalignment='center', verticalalignment='center')\n",
|
||||||
|
"\n",
|
||||||
|
"ax2.axis('equal')\n",
|
||||||
|
"ax2.set_title('Percentage Distribution')\n",
|
||||||
|
"\n",
|
||||||
|
"plt.tight_layout()\n",
|
||||||
|
"plt.show()"
|
||||||
|
],
|
||||||
|
"id": "d23f0edf1ff334f7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "code",
|
||||||
|
"outputs": [],
|
||||||
|
"execution_count": null,
|
||||||
|
"source": [
|
||||||
|
"# Find all trims and go up the hierarchy to find complete chains\n",
|
||||||
|
"complete_hierarchies = []\n",
|
||||||
|
"\n",
|
||||||
|
"for trim in CarTrim.objects.select_related('id_car_serie__id_car_model__id_car_make')[:20]:\n",
|
||||||
|
" serie = trim.id_car_serie\n",
|
||||||
|
" model = serie.id_car_model\n",
|
||||||
|
" make = model.id_car_make\n",
|
||||||
|
"\n",
|
||||||
|
" complete_hierarchies.append({\n",
|
||||||
|
" 'make': make.name,\n",
|
||||||
|
" 'model': model.name,\n",
|
||||||
|
" 'serie': serie.name,\n",
|
||||||
|
" 'trim': trim.name\n",
|
||||||
|
" })\n",
|
||||||
|
"\n",
|
||||||
|
"# Display as a formatted table\n",
|
||||||
|
"from IPython.display import display, HTML\n",
|
||||||
|
"import pandas as pd\n",
|
||||||
|
"\n",
|
||||||
|
"if complete_hierarchies:\n",
|
||||||
|
" print(\"\\nSample of complete car hierarchies:\")\n",
|
||||||
|
" df = pd.DataFrame(complete_hierarchies)\n",
|
||||||
|
" display(HTML(df.to_html(index=False"
|
||||||
|
],
|
||||||
|
"id": "3cd9822a8ac1a880"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "code",
|
||||||
|
"outputs": [],
|
||||||
|
"execution_count": null,
|
||||||
|
"source": [
|
||||||
|
"# Create DataFrames for export\n",
|
||||||
|
"import pandas as pd\n",
|
||||||
|
"\n",
|
||||||
|
"# Makes without models\n",
|
||||||
|
"makes_without_models_df = pd.DataFrame({\n",
|
||||||
|
" 'make_id': [make.id_car_make for make in makes_without_models],\n",
|
||||||
|
" 'make_name': [make.name for make in makes_without_models],\n",
|
||||||
|
" 'is_sa_import': [make.is_sa_import for make in makes_without_models]\n",
|
||||||
|
"})\n",
|
||||||
|
"\n",
|
||||||
|
"# Models without series\n",
|
||||||
|
"models_without_series_df = pd.DataFrame({\n",
|
||||||
|
" 'model_id': [model.id_car_model for model in models_without_series],\n",
|
||||||
|
" 'model_name': [model.name for model in models_without_series],\n",
|
||||||
|
" 'make_id': [model.id_car_make.id_car_make for model in models_without_series],\n",
|
||||||
|
" 'make_name': [model.id_car_make.name for model in models_without_series]\n",
|
||||||
|
"})\n",
|
||||||
|
"\n",
|
||||||
|
"# Series without trims\n",
|
||||||
|
"series_without_trims_df = pd.DataFrame({\n",
|
||||||
|
" 'serie_id': [serie.id_car_serie for serie in series_without_trims],\n",
|
||||||
|
" 'serie_name': [serie.name for serie in series_without_trims],\n",
|
||||||
|
" 'model_id': [serie.id_car_model.id_car_model for serie in series_without_trims],\n",
|
||||||
|
" 'model_name': [serie.id_car_model.name for serie in series_without_trims],\n",
|
||||||
|
" 'make_id': [serie.id_car_model.id_car_make.id_car_make for serie in series_without_trims],\n",
|
||||||
|
" 'make_name': [serie.id_car_model.id_car_make.name for serie in series_without_trims]\n",
|
||||||
|
"})\n",
|
||||||
|
"\n",
|
||||||
|
"# Save to CSV files (uncomment to use)\n",
|
||||||
|
"# makes_without_models_df.to_csv('makes_without_models.csv', index=False)\n",
|
||||||
|
"# models_without_series_df.to_csv('models_without_series.csv', index=False)\n",
|
||||||
|
"# series_without_trims_df.to_csv('series_without_trims.csv', index=False)\n",
|
||||||
|
"\n",
|
||||||
|
"# Display the first few rows of each DataFrame\n",
|
||||||
|
"print(\"\\nMakes without models (first 5):\")\n",
|
||||||
|
"display(makes_without_models_df.head())\n",
|
||||||
|
"\n",
|
||||||
|
"print(\"\\nModels without series (first 5):\")\n",
|
||||||
|
"display(models_without_series_df.head())\n",
|
||||||
|
"\n",
|
||||||
|
"print(\"\\nSeries without trims (first 5):\")\n",
|
||||||
|
"display(series_without_trims_df.head())"
|
||||||
|
],
|
||||||
|
"id": "6edeb052b327a48c"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
139
inventory/management/commands/analyze_car_hierarchy.py
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from django.db.models import Count
|
||||||
|
from inventory.models import CarMake, CarModel, CarSerie, CarTrim
|
||||||
|
import csv
|
||||||
|
import os
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = 'Analyzes the car hierarchy to identify makes without models, models without series, and series without trims'
|
||||||
|
|
||||||
|
def add_arguments(self, parser):
|
||||||
|
parser.add_argument(
|
||||||
|
'--export',
|
||||||
|
action='store_true',
|
||||||
|
help='Export results to CSV files',
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--export-path',
|
||||||
|
type=str,
|
||||||
|
default='exports',
|
||||||
|
help='Directory to export CSV files (default: "exports")',
|
||||||
|
)
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
export = options['export']
|
||||||
|
export_path = options['export_path']
|
||||||
|
|
||||||
|
# Create export directory if needed
|
||||||
|
if export:
|
||||||
|
export_dir = os.path.join(settings.BASE_DIR, export_path)
|
||||||
|
if not os.path.exists(export_dir):
|
||||||
|
os.makedirs(export_dir)
|
||||||
|
|
||||||
|
# Analyze makes without models
|
||||||
|
all_makes = CarMake.objects.all()
|
||||||
|
total_makes = all_makes.count()
|
||||||
|
makes_without_models = CarMake.objects.annotate(model_count=Count('carmodel')).filter(model_count=0)
|
||||||
|
makes_without_models_count = makes_without_models.count()
|
||||||
|
|
||||||
|
self.stdout.write(self.style.SUCCESS(f"Total car makes: {total_makes}"))
|
||||||
|
self.stdout.write(self.style.SUCCESS(
|
||||||
|
f"Car makes without models: {makes_without_models_count} "
|
||||||
|
f"({makes_without_models_count/total_makes*100:.2f}% of all makes)"
|
||||||
|
))
|
||||||
|
|
||||||
|
if makes_without_models_count > 0:
|
||||||
|
self.stdout.write("\nSample of car makes without models:")
|
||||||
|
for make in makes_without_models[:5]:
|
||||||
|
self.stdout.write(f"- {make.name}")
|
||||||
|
|
||||||
|
# Analyze models without series
|
||||||
|
all_models = CarModel.objects.all()
|
||||||
|
total_models = all_models.count()
|
||||||
|
models_without_series = CarModel.objects.annotate(serie_count=Count('carserie')).filter(serie_count=0)
|
||||||
|
models_without_series_count = models_without_series.count()
|
||||||
|
|
||||||
|
self.stdout.write(self.style.SUCCESS(f"\nTotal car models: {total_models}"))
|
||||||
|
self.stdout.write(self.style.SUCCESS(
|
||||||
|
f"Car models without series: {models_without_series_count} "
|
||||||
|
f"({models_without_series_count/total_models*100:.2f}% of all models)"
|
||||||
|
))
|
||||||
|
|
||||||
|
if models_without_series_count > 0:
|
||||||
|
self.stdout.write("\nSample of car models without series:")
|
||||||
|
for model in models_without_series[:5]:
|
||||||
|
self.stdout.write(f"- {model.name} (Make: {model.id_car_make.name})")
|
||||||
|
|
||||||
|
# Analyze series without trims
|
||||||
|
all_series = CarSerie.objects.all()
|
||||||
|
total_series = all_series.count()
|
||||||
|
series_without_trims = CarSerie.objects.annotate(trim_count=Count('cartrim')).filter(trim_count=0)
|
||||||
|
series_without_trims_count = series_without_trims.count()
|
||||||
|
|
||||||
|
self.stdout.write(self.style.SUCCESS(f"\nTotal car series: {total_series}"))
|
||||||
|
self.stdout.write(self.style.SUCCESS(
|
||||||
|
f"Car series without trims: {series_without_trims_count} "
|
||||||
|
f"({series_without_trims_count/total_series*100:.2f}% of all series)"
|
||||||
|
))
|
||||||
|
|
||||||
|
if series_without_trims_count > 0:
|
||||||
|
self.stdout.write("\nSample of car series without trims:")
|
||||||
|
for serie in series_without_trims[:5]:
|
||||||
|
self.stdout.write(
|
||||||
|
f"- {serie.name} (Model: {serie.id_car_model.name}, "
|
||||||
|
f"Make: {serie.id_car_model.id_car_make.name})"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Export data if requested
|
||||||
|
if export:
|
||||||
|
# Export makes without models
|
||||||
|
if makes_without_models_count > 0:
|
||||||
|
filepath = os.path.join(export_dir, 'makes_without_models.csv')
|
||||||
|
with open(filepath, 'w', newline='') as csvfile:
|
||||||
|
writer = csv.writer(csvfile)
|
||||||
|
writer.writerow(['make_id', 'make_name', 'is_sa_import'])
|
||||||
|
for make in makes_without_models:
|
||||||
|
writer.writerow([make.id_car_make, make.name, make.is_sa_import])
|
||||||
|
self.stdout.write(self.style.SUCCESS(f"Exported makes without models to {filepath}"))
|
||||||
|
|
||||||
|
# Export models without series
|
||||||
|
if models_without_series_count > 0:
|
||||||
|
filepath = os.path.join(export_dir, 'models_without_series.csv')
|
||||||
|
with open(filepath, 'w', newline='') as csvfile:
|
||||||
|
writer = csv.writer(csvfile)
|
||||||
|
writer.writerow(['model_id', 'model_name', 'make_id', 'make_name'])
|
||||||
|
for model in models_without_series:
|
||||||
|
writer.writerow([
|
||||||
|
model.id_car_model,
|
||||||
|
model.name,
|
||||||
|
model.id_car_make.id_car_make,
|
||||||
|
model.id_car_make.name
|
||||||
|
])
|
||||||
|
self.stdout.write(self.style.SUCCESS(f"Exported models without series to {filepath}"))
|
||||||
|
|
||||||
|
# Export series without trims
|
||||||
|
if series_without_trims_count > 0:
|
||||||
|
filepath = os.path.join(export_dir, 'series_without_trims.csv')
|
||||||
|
with open(filepath, 'w', newline='') as csvfile:
|
||||||
|
writer = csv.writer(csvfile)
|
||||||
|
writer.writerow(['serie_id', 'serie_name', 'model_id', 'model_name', 'make_id', 'make_name'])
|
||||||
|
for serie in series_without_trims:
|
||||||
|
writer.writerow([
|
||||||
|
serie.id_car_serie,
|
||||||
|
serie.name,
|
||||||
|
serie.id_car_model.id_car_model,
|
||||||
|
serie.id_car_model.name,
|
||||||
|
serie.id_car_model.id_car_make.id_car_make,
|
||||||
|
serie.id_car_model.id_car_make.name
|
||||||
|
])
|
||||||
|
self.stdout.write(self.style.SUCCESS(f"Exported series without trims to {filepath}"))
|
||||||
|
|
||||||
|
# Summary
|
||||||
|
self.stdout.write("\n" + "="*50)
|
||||||
|
self.stdout.write(self.style.SUCCESS("SUMMARY"))
|
||||||
|
self.stdout.write("="*50)
|
||||||
|
self.stdout.write(f"Total makes: {total_makes} | Without models: {makes_without_models_count} ({makes_without_models_count/total_makes*100:.2f}%)")
|
||||||
|
self.stdout.write(f"Total models: {total_models} | Without series: {models_without_series_count} ({models_without_series_count/total_models*100:.2f}%)")
|
||||||
|
self.stdout.write(f"Total series: {total_series} | Without trims: {series_without_trims_count} ({series_without_trims_count/total_series*100:.2f}%)")
|
||||||
BIN
static/.DS_Store
vendored
BIN
static/images/.DS_Store
vendored
BIN
static/images/cars/.DS_Store
vendored
Normal file
BIN
static/images/cars/bus.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
static/images/cars/cabriolet.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
static/images/cars/commercial.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
static/images/cars/coupe.png
Normal file
|
After Width: | Height: | Size: 1003 KiB |
BIN
static/images/cars/crossover.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
static/images/cars/double_pickup.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
static/images/cars/hatchback.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
static/images/cars/minivan.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
static/images/cars/sedan.png
Normal file
|
After Width: | Height: | Size: 987 KiB |
BIN
static/images/cars/single_pickup.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
static/images/cars/sport_car.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
static/images/cars/suv.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
static/images/cars/van.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
static/images/cars/van_cargo.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
1
static/images/convertible.svg
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
1
static/images/coupe.svg
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
1
static/images/sedan.svg
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
1
static/images/suv.svg
Normal file
|
After Width: | Height: | Size: 8.6 KiB |