用 Python 分析 Cars.csv 文件 – 完整指南

在本教程中,我们将了解如何使用 Python 探索 cars.csv 数据集。我们将首先加载数据集,然后处理数据。我们还将可视化数据集,当准备好最终数据集时,相同的数据集可用于开发各种模型。


在 Python 中分析 Cars.csv 数据集的步骤

我们将使用PandasNumpy进行此分析。我们还将使用 Seaborn 库来尝试可视化。让我们开始吧。

1.加载Cars.csv数据集

由于数据集已经是 CSV 格式,我们需要做的就是将数据格式化为 pandas 数据框。read_csv这是通过使用导入库调用的 pandas 数据框方法来完成的pandas

read_csv通过将 CSV 文件的路径作为参数传递给函数来使用数据框方法当我们使用该head函数时,代码会生成一个组织整齐的 pandas 数据框。

首先,我们将所有必要的模块和库导入到我们的代码中。

1
2
3
4
5
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(color_codes=True)

现在,数据已在pandas模块的帮助下加载。

1
2
df = pd.read_csv("CARS.csv")
df.head()

该数据集具有428 rows有关15 features不同汽车品牌(例如宝马、梅赛德斯、奥迪等)的数据,并且具有有关这些汽车的多种特征,例如型号、类型、原产地、传动系统、建议零售价等特征。


2. 删除不相关的特征

在后面的部分中,如果我们需要根据提供给我们的一些功能来计算汽车的价格。但并非所有特征都是确定汽车价格所必需的,我们的目标是从数据集中删除相同的不相关特征。

我们要删除的功能包括传动系、型号、发票、类型和原产地。所有这些功能都不是确定成本所必需的。您可以根据自己的喜好删除或保留功能。

1
2
df = df.drop(['Model','DriveTrain','Invoice', 'Origin', 'Type'], axis=1)
df.head()

3. 查找重复数据

在任何数据集中,都可能存在重复/冗余数据,为了删除相同的数据,我们使用reference feature(在本例中为建议零售价)。我之所以以建议零售价作为参考,是因为两辆车的价格很少能100%匹配。

为了删除重复项,我们使用下面提到的代码。您可以观察到行数从 428 行减少到 410 行。

1
2
print("Count before Removing Duplicates: ")
df.count()

输出如下所示。

Count before Removing Duplicates:
Make           428
MSRP           428
EngineSize     428
Cylinders      426
Horsepower     428
MPG_City       428
MPG_Highway    428
Weight         428
Wheelbase      428
Length         428
dtype: int64
1
2
3
4
df = df.drop_duplicates(subset='MSRP', keep='first')
 
print("Count after Removing Duplicates: ")
df.count()
Count after Removing Duplicates:
Make           410
MSRP           410
EngineSize     410
Cylinders      408
Horsepower     410
MPG_City       410
MPG_Highway    410
Weight         410
Wheelbase      410
Length         410
dtype: int64

4. 查找缺失值或空值

没有数据集是完美的,数据集中缺失值是很常见的事情。现在,有几种方法可以处理缺失值。

可以删除任一行或用该列中所有值的平均值填充空值。最好取列值的平均值,而不是删除整行,因为每一行对于开发人员都很重要。

让我们首先看看数据集中有多少个空值。

print(df.isnull().sum())

您可以观察到该列中有两个空值Cylinders,其余值都清晰可见。我们的目标是处理该列的 2 个空值。发现空值属于 row 247 and 248,因此我们将其替换为所有值的平均值。

1
2
3
4
5
6
7
8
9
# Calculate mean of all the values of the column
val = df['Cylinders'].mean()
print("The mean of the column is: ",val)
val = round(val)
print("Rounded value of  the mean of the column is: ",val)
 
# Replace the null value with the mean of the column
df['Cylinders'][247] = val
df['Cylinders'][248] = val

5. 将对象值转换为整数类型

如果您还没有观察到,建议零售价的值以 开头,$但我们需要这些值是整数类型。因此,我们需要确保从该列中的所有值中删除美元符号。

1
2
3
4
5
6
7
df['MSRP'] = [x.replace('$','') for x in df['MSRP']]
 
df['MSRP'] = [x.replace(',','') for x in df['MSRP']]
 
df['MSRP']=pd.to_numeric(df['MSRP'],errors='coerce')
 
df.head()

6. 可视化热图

热图是查找特征之间相关性的最佳方法之一的地图。绘制热图后,我们可以看到建议零售价和马力之间存在很强的依赖性。

1
2
3
4
plt.figure(figsize=(10,10))
plt.style.use("seaborn")
c= df.corr()
sns.heatmap(c,cmap='PiYG',annot=True)
汽车 Csv 文件热图

希望您理解这个概念,并将其应用到其他各种 CSV 文件中。感谢您的阅读!