请添加图片描述

  • Python数据分析实战:从数据清洗到可视化洞察

一、环境准备与工具链

# 推荐工具组合
import pandas as pd  # 数据处理(v1.5+)
import numpy as np   # 数值计算(v1.23+)
import seaborn as sns # 可视化(v0.12+)
from sklearn.preprocessing import StandardScaler  # 特征工程

二、实战案例:电商用户行为分析

1. 数据加载与探索

# 读取CSV数据(含中文需指定encoding)
df = pd.read_csv('user_behavior.csv', encoding='gbk') 

# 快速诊断数据
print(f"数据维度:{df.shape}")
print(df.info())
df.head(3).T  # 转置显示前3行

2. 数据清洗实战

# 处理缺失值
df['age'] = df['age'].fillna(df['age'].median())

# 异常值过滤
q1, q3 = df['purchase_amount'].quantile([0.25, 0.75])
df = df[~df['purchase_amount'].gt(q3 + 1.5*(q3-q1))]

# 日期转换
df['order_date'] = pd.to_datetime(df['order_date'], format='%Y-%m-%d')

3. 特征工程技巧

# 创建RFM特征
current_date = pd.to_datetime('2023-12-31')
rfm = df.groupby('user_id').agg({
    'order_date': lambda x: (current_date - x.max()).days,
    'order_id': 'count',
    'purchase_amount': 'sum'
}).rename(columns={
    'order_date': 'recency',
    'order_id': 'frequency',
    'purchase_amount': 'monetary'
})

# 标准化处理
scaler = StandardScaler()
rfm_scaled = pd.DataFrame(scaler.fit_transform(rfm), columns=rfm.columns)

三、高级分析技术

1. 用户分群(K-Means聚类)

from sklearn.cluster import KMeans

# 肘部法则确定K值
sse = []
for k in range(1, 9):
    kmeans = KMeans(n_clusters=k, random_state=42)
    kmeans.fit(rfm_scaled)
    sse.append(kmeans.inertia_)
    
# 可视化选择最佳K值
sns.lineplot(x=range(1,9), y=sse).set(title='Elbow Method')

2. 关联规则挖掘

from mlxtend.frequent_patterns import apriori

# 构建购物篮矩阵
basket = pd.crosstab(df['order_id'], df['product_category'])
basket = basket.applymap(lambda x: 1 if x >0 else 0)

# 挖掘频繁项集
frequent_itemsets = apriori(basket, min_support=0.05, use_colnames=True)

四、可视化呈现

import plotly.express as px

# 动态RFM三维散点图
fig = px.scatter_3d(rfm, 
                   x='recency',
                   y='frequency',
                   z='monetary',
                   color=kmeans.labels_,
                   hover_name=rfm.index)
fig.update_layout(scene=dict(
    xaxis_title='最近消费(天)',
    yaxis_title='消费频次',
    zaxis_title='消费金额(元)'
))
fig.show()

五、性能优化技巧

  1. 大数据处理:使用dask替代pandas处理GB级数据
  2. 加速计算:对数值列使用pd.to_numeric()减少内存占用
  3. 并行处理
from joblib import Parallel, delayed

def process_chunk(chunk):
    return chunk.groupby('user_id').sum()

results = Parallel(n_jobs=4)(
    delayed(process_chunk)(chunk) 
    for chunk in pd.read_csv('large_file.csv', chunksize=100000)
)

六、典型业务场景解决方案

问题类型 技术方案 关键指标
用户流失预警 XGBoost分类+SHAP解释 AUC ≥0.85
商品推荐优化 协同过滤+Embedding 点击率提升30%+
库存预测 Prophet时间序列分析 MAPE ≤15%

文章特点:

  1. 所有代码在Python 3.8+环境实测通过
  2. 包含电商、零售等真实业务场景
  3. 突出从原始数据到商业洞察的完整链路
  4. 提供可复用的代码片段(可直接复制到Jupyter运行)
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐