我有以下带有 NaN 的数据集:
County 0
City 0
State 0
Postal Code 0
Model Year 0
Make 0
Model 286
Electric Vehicle Type 0
Clean Alternative Fuel Vehicle (CAFV) Eligibility 0
Electric Range 0
Base MSRP 0
Legislative District 312
DOL Vehicle ID 0
Vehicle Location 0
Electric Utility 0
2020 Census Tract 0
dtype: int64
如图所示,有 286 个缺失的模型和 312 个缺失的立法区。
对于模型,我已经确定了具有缺失值的品牌(计数 = 21)。在下面的数组中找到:
array(['KIA', 'VOLVO', 'NISSAN', 'BMW', 'TESLA', 'HONDA', 'CHEVROLET',
'TOYOTA', 'FORD', 'VOLKSWAGEN', 'JEEP', 'HYUNDAI', 'LAND ROVER',
'AUDI', 'CHRYSLER', 'POLESTAR', 'SUBARU', 'CADILLAC', 'MITSUBISHI',
'FISKER', 'RIVIAN'], dtype=object)
我想做的,是根据模型的品牌来填充缺失模型的 NaN。
Ex.Model (Mode) = EV6 WHEN Make = KIA
我还检索了品牌和型号列表,其中模型列显示模式:
df1 = (df.groupby('Make')['Model']
.apply(lambda x: x.mode().iat[0])
.reset_index())
Make Model
0 AUDI E-TRON
1 AZURE DYNAMICS TRANSIT CONNECT ELECTRIC
2 BENTLEY BENTAYGA
3 BMW X5
4 CADILLAC ELR
5 CHEVROLET BOLT EV
6 CHRYSLER PACIFICA
7 FIAT 500
8 FISKER KARMA
9 FORD MUSTANG MACH-E
10 GENESIS GV60
11 HONDA CLARITY
12 HYUNDAI IONIQ 5
13 JAGUAR I-PACE
14 JEEP WRANGLER
15 KIA NIRO
16 LAND ROVER RANGE ROVER SPORT
17 LEXUS NX
18 LINCOLN AVIATOR
19 LUCID AIR
20 MAZDA CX-90
21 MERCEDES-BENZ GLC-CLASS
22 MINI HARDTOP
23 MITSUBISHI OUTLANDER
24 NISSAN LEAF
25 POLESTAR PS2
26 PORSCHE TAYCAN
27 RIVIAN R1T
28 SMART FORTWO ELECTRIC DRIVE
29 SUBARU SOLTERRA
30 TESLA MODEL 3
31 TH!NK CITY
32 TOYOTA PRIUS PRIME
33 VOLKSWAGEN ID.4
34 VOLVO XC90
35 WHEEGO ELECTRIC CARS WHEEGO
我该怎么办:
A) 将 NaN 替换为基于其品牌的模型模式(列表)? B) 简化一个条目中的众数计算、列表和 NaN 替换,而不是分割我的工作(如果有的话)?
非常感谢,任何意见都会很有价值。
使用以下方式生成品牌和型号(模式)列表:
df1 = (df.groupby('Make')['Model']
.apply(lambda x: x.mode().iat[0])
.reset_index())
期望根据其品牌将 NaN 替换为模型模式。