import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# 1. 数据加载
df = pd.read_csv('customer_data.csv')
# 2. 数据探索
print(df.head()) # 检查前几行
print(df.info()) # 查看数据详情和缺失值情况
print(df.describe()) # 获取数值型变量的统计描述
# 3. 数据清洗
# 处理缺失值:用中位数填充年龄
df['Age'].fillna(df['Age'].median(), inplace=True)
# 移除重复行
df.drop_duplicates(inplace=True)
# 4. 数据可视化
# 查看年龄分布情况
sns.histplot(df['Age'], kde=True)
plt.title('年龄分布')
plt.show()
# 查看收入与年龄的散点图
sns.scatterplot(data=df, x='Age', y='Income', hue='Purchased') # 根据是否购买进行着色
plt.title('收入与年龄的关系')
plt.show()
# 5. 数据转换
# 标准化年龄和收入(适用于基于距离的算法)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['Age_scaled', 'Income_scaled']] = scaler.fit_transform(df[['Age', 'Income']])
# 编码分类变量,如“城市”
df = pd.get_dummies(df, columns=['City'], prefix='City')


雷达卡


京公网安备 11010802022788号







