2.1.1(数据处理规范)
打开2.1.1
import pandas as pd
# 加载数据集并显示数据集的前五行 1分
file_path = 'auto-mpg.csv'
data = pd.__________(file_path)
---
data = pd.read_csv(file_path)
# 检查缺失值并删除缺失值所在的行 2分
print("\n检查缺失值:")
print(data.__________().sum())
data = data.__________()
---
print(data.isnull().sum())
data = data.dropna()
代码解释:
isnull()
,定位和处理数据中的缺失值。
# 将 'horsepower' 列转换为数值类型,并处理转换中的异常值
data['horsepower'] = pd.to_numeric(data['horsepower'], errors='coerce')
data = data. (subset=['horsepower'])
---
data = data.dropna(subset=['horsepower'])
代码解释:
1. 为什么转换数据类型后需要 dropna()
?
pd.to_numeric(errors='coerce')
的作用是:
尝试将列转换为数值类型。
遇到无法转换的值(如字符串 "?"、"NaN" 等)时,将其强制转换为 NaN
。
因此,转换后的数据中可能会新增 NaN
,需要用 dropna()
删除这些无效行。
# 对数值型数据进行标准化处理 1分
numerical_features = ['displacement', 'horsepower', 'weight', 'acceleration']
scaler = StandardScaler()
data[numerical_features] = scaler.__________(data[numerical_features])
---
data[numerical_features] = scaler.fit_transform(data[numerical_features])
代码解释:
# 选择特征和目标变量 2分
selected_features = ['cylinders', 'displacement', 'horsepower', 'weight', 'acceleration', 'model year', 'origin']
代码解释:
X = data[selected_features]
代码解释:
X = data[selected_features]
y = data['mpg']
代码解释:
y
:从 DataFrame data
中提取名为 mpg
的列,作为目标变量(也称为因变量或标签)
# 划分数据集为训练集和测试集 1分
X_train, X_test, y_train, y_test = __________(X, y, test_size=0.2, random_state=42)
---
X_train, X_test, y_train, y_test =train_test_split(X, y, test_size=0.2, random_state=42)
代码解释:
# 保存清洗和处理后的数据
cleaned_data.__________('2.1.1_cleaned_data.csv', index=False)
---
cleaned_data.to_csv('2.1.1_cleaned_data.csv', index=False)