Python数据分析项目实战:销售数据仪表盘

Python数据分析项目实战:销售数据仪表盘

一、项目概述

本项目使用Python对电商销售数据进行完整的数据分析流程,包括数据清洗、可视化和业务洞察。

二、环境配置

python 复制代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime
plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False
plt.style.use('seaborn-v0_8-whitegrid')
print("环境配置完成")

三、数据加载

python 复制代码
df = pd.read_csv('sales_data.csv', encoding='utf-8')
print(f"数据规模: {df.shape[0]}行, {df.shape[1]}列")
print(f"数据列名: {df.columns.tolist()}")

四、数据清洗

python 复制代码
print(f"缺失值统计:\n{df.isnull().sum()}")
df = df.dropna(subset=['客户ID'])
df['金额'].fillna(0, inplace=True)
df['日期'] = pd.to_datetime(df['日期'])
df['金额'] = pd.to_numeric(df['金额'], errors='coerce')
df['数量'] = pd.to_numeric(df['数量'], errors='coerce')

五、特征工程

python 复制代码
df['年'] = df['日期'].dt.year
df['月'] = df['日期'].dt.month
df['季度'] = df['日期'].dt.quarter
df['星期'] = df['日期'].dt.day_name()
df['累计销售额'] = df.sort_values('日期').groupby('客户ID')['金额'].cumsum()

六、销售额分析

python 复制代码
yearly_sales = df.groupby('年')['金额'].sum()
fig, ax = plt.subplots(figsize=(10, 6))
yearly_sales.plot(kind='bar', ax=ax, color='#3498db', edgecolor='white')
ax.set_xlabel('年份', fontsize=12)
ax.set_ylabel('销售额', fontsize=12)
ax.set_title('年度销售额趋势', fontsize=14, fontweight='bold')
plt.tight_layout()
plt.savefig('yearly_sales.png', dpi=150)
plt.show()

七、客户分析

python 复制代码
customer_sales = df.groupby('客户ID')['金额'].sum().sort_values(ascending=False)
fig, ax = plt.subplots(figsize=(10, 6))
customer_sales.head(20).plot(kind='barh', ax=ax, color='#2ecc71')
ax.set_xlabel('累计消费金额', fontsize=12)
ax.set_ylabel('客户ID', fontsize=12)
ax.set_title('Top 20 客户消费排行', fontsize=14, fontweight='bold')
plt.tight_layout()
plt.savefig('top_customers.png', dpi=150)
plt.show()

八、产品分析

python 复制代码
product_sales = df.groupby('产品类别')['金额'].sum().sort_values(ascending=False)
fig, ax = plt.subplots(figsize=(10, 8))
colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FFEAA7']
wedges, texts, autotexts = ax.pie(product_sales, labels=product_sales.index, autopct='%1.1f%%', colors=colors[:len(product_sales)])
ax.set_title('产品类别销售占比', fontsize=14, fontweight='bold')
plt.tight_layout()
plt.savefig('product_pie.png', dpi=150)
plt.show()

九、业务指标仪表盘

python 复制代码
total_revenue = df['金额'].sum()
total_orders = df['订单ID'].nunique()
total_customers = df['客户ID'].nunique()
avg_order_value = total_revenue / total_orders
print("=" * 50)
print(" 核心业务指标汇总")
print("=" * 50)
print(f"总销售额: ¥{total_revenue:,.2f}")
print(f"总订单数: {total_orders:,}笔")
print(f"总客户数: {total_customers:,}人")
print(f"平均订单金额: ¥{avg_order_value:.2f}")
print("=" * 50)

十、实验结果

关键发现:

  1. 销售额集中在下半年,Q4季度销售额占全年的35%
  2. 头部效应明显,前20%客户贡献了78%的销售额
  3. 电子产品占比最高,占整体销售的42%
  4. 平均订单价值稳定,客单价约¥580

十一、总结

本项目完整展示了Python数据分析的典型流程:数据加载→清洗→特征工程→可视化分析→业务洞察。掌握了这些技能,可以快速迁移到其他行业的数据分析项目中。


标签: Python | 数据分析 | Pandas | Matplotlib | 销售分析 | 仪表盘

相关推荐
m0_720245014 小时前
1543.统计好三元组(简单)
开发语言·算法
小田学Python6 小时前
100行Python代码,搭一个能干活的AI Agent
python·langchain·大模型·ai agent
叠层归一研究院6 小时前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
明朝百晓生6 小时前
Deep RL learning[2026/8]
开发语言·javascript·人工智能
Csvn6 小时前
🐍 Day3 : Python 容器精讲 — list、dict、set、tuple 底层实现与高级操作
后端·python
weixin-a153003083167 小时前
python-装饰器
开发语言·python
我的xiaodoujiao7 小时前
快速学习Python基础知识详细图文教程17--类型注解和断点调试
开发语言·python·学习·测试工具
每天吃饭的羊8 小时前
Chrome DevTools MCP
python
leoZ2319 小时前
AI 辅助开发的五道坎
开发语言·人工智能·视觉检测·bert·php·超分辨率重建·openvino
程序员老陆9 小时前
Qt的QThread::usleep和FFmpeg的libavutil模块的av_usleep哪个精度高一些?
开发语言·qt·ffmpeg·音视频