Appearance
健康与营养咨询数据预处理与数据规范设计
1.导入库
python
import pandas as pd- 导入
pandas库,⽤于数据处理和分析,通常别名为 pd
2.加载数据集
python
data = pd.read_csv('健康咨询客户数据集.csv')pd.read_csv(): 读取CSV文件- 参数:文件路径('健康咨询客户数据集.csv')
3.查看数据基本信息
python
print(data.info())info(): 显示数据集的简明摘要- 包括列名、非空值数量、数据类型等
4.检查缺失值
python
print(data.isnull().sum())data.isnull().sum(): 统计每列的缺失值数量
5.删除缺失值
python
data_cleaned = data.dropna()dropna(): 删除包含任何缺失值的行- 默认删除任何包含NaN的行
6.处理年龄列
python
data_cleaned.loc[:, 'Your age'] = pd.to_numeric(data_cleaned['Your age'], errors='coerce')
data_cleaned = data_cleaned.dropna(subset=['Your age'])
data_cleaned = data_cleaned[data_cleaned['Your age'] >= 0]
data_cleaned.loc[:, 'Your age'] = data_cleaned['Your age'].astype(int)pd.to_numeric(): 将列转换为数值类型- errors='coerce' : 将无法转换的值设为NaN
dropna(subset=['Your age']): 只删除age列中的缺失值data_cleaned['Your age'] >= 0: 过滤掉负年龄astype(int): 转换为整数类型
7.检查数据类型
python
print(data_cleaned['Your age'].dtype)- 打印age列的数据类型
8.处理重复值
python
duplicates_removed = data_cleaned.duplicated().sum()
data_cleaned = data_cleaned.drop_duplicates()
print(f"Removed {duplicates_removed} duplicate rows")duplicated().sum(): 统计重复行数drop_duplicates(): 删除重复行- 打印删除的重复行数
9.标签编码
python
from sklearn.preprocessing import LabelEncoder
label_encoder = LabelEncoder()
data_cleaned['How do you describe your current level of fitness ?'] =label_encoder.fit_transform(data_cleaned['How do you describe your current level of fitness?'])- unique() : 打印列的唯一值
fit_transform(): 将分类值转换为数字标签
10. 查看编码结果
python
print(data_cleaned['How do you describe your current level of fitness ?'].unique())unique(): 打印列的唯一值
11.列名处理
python
data.columns = data.columns.str.strip()
print(data.columns)str.strip(): 去除列名两端的空格- 打印处理后的列名
12.特定列缺失值处理
python
data_cleaned = data.dropna(subset=['How often do you exercise?'])- 只删除exercise列中的缺失值
13.统计健身频率
python
exercise_frequency_counts = data_cleaned['How often do you exercise?'].value_counts()value_counts(): 统计每个值的出现次数
14.绘制饼图
python
plt.figure(figsize=(10, 6))
exercise_frequency_counts.plot.pie(autopct='%1.1f%%', startangle=90,colors=plt.cm.Paired.colors)
plt.title('Distribution of Exercise Frequency')
plt.ylabel('')
plt.show()- figure(figsize=(10, 6)) : 设置图形大小
- plot.pie() : 绘制饼图
- autopct='%1.1f%%' : 显示百分比
- startangle=90 : 起始角度
- colors=plt.cm.Paired.colors : 颜色方案
- title() : 设置标题
- show() : 显示图形
15.填充缺失值
python
data_filled = data.apply(lambda x: x.fillna(x.mode()[0]))apply(): 对每列应用函数fillna(x.mode()[0]): 用众数填充缺失值
16.划分数据集
python
train_data, test_data = train_test_split(data_filled, test_size=0.2, random_state=42)train_test_split(): 划分训练/测试集- test_size=0.2 : 测试集占比20%
- random_state=42 : 随机种子
17.保存数据
python
cleaned_file_path = '2.1.5_cleaned_data.csv'
data_filled.to_csv(cleaned_file_path, index=False)- to_csv() : 保存为CSV文件
- index=False : 不保存行索引
制定数据清洗规范
(1)加载数据集:查看表的数据类型,表结构和显示每一列的空缺值数量;
(2)缺失值处理:对于含有缺失值的行进行删除操作;
(3)数据类型转换:将“Your age”列的数据类型转换为整数类型,并处理其中的异常值;
(4)数据去重:检查数据集中的重复值并删除所有重复值,并记录删除的行数;
(5)数据归一化处理:对“如何形容你的当前健身水平?”(How do you describe your current level of fitness ?)列中的数据进行归一化处理;
6、保存清洗后的数据: 将经过清洗和处理后的数据保存为新的 CSV 文件,以便后续使用。制定数据标注规范
1. 数据来源:标注数据的来源,包括数据集的名称、获取日期和数据提供者。
2. 数据描述:提供详细的数据描述,包括每列数据的含义、单位和可能的取值范围。
3. 特征选择: 确定对目标变量预测最有用的特征。
4. 目标变量设定: 根据业务需求和数据特性,选择最有用的特征。
5. 数据划分: 将数据分为训练集和测试集,通常采用 80/20 的比例,以便于模型的训练和评估。
6. 保存处理后的数据:保存处理后的数据,并记录保存文件的路径和文件名。
7. 数据清洗和标注规范文档