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 | 销售分析 | 仪表盘

相关推荐
云烟成雨TD19 分钟前
LangFlow 1.x 系列【3】入门案例
人工智能·python·agent
创世宇图22 分钟前
【Python工程化实战】Python 服务的结构化日志体系:structlog + JSON 输出 + 日志分级策略
python·elk·structlog·结构化日志·可观测性
aaaameliaaa27 分钟前
计算斐波那契数(递归、迭代)(1,1,2,3,5.....)
c语言·开发语言·笔记·算法·排序算法
m0_5474866633 分钟前
《模式识别:使用MATLAB分析与实现》全套PPT课件
开发语言·matlab·模式识别
Tim_1034 分钟前
【C++】009、extern关键字
java·开发语言
创世宇图1 小时前
【Python工程化实战】Kubernetes 中 Python 应用的优雅启停与健康检查:零停机滚动更新实战
python·云原生·kubernetes·优雅停机
夜雪一千1 小时前
Python 使用OpenAI调用Qwen3.6-27B-ms模型|完整参数详解
开发语言·python
zhiSiBuYu05172 小时前
重排序(Rerank)提升检索准确率实战指南
开发语言·python·算法
MageGojo2 小时前
集成企业工商信息查询API:从在线调试到生产级调用实战
python·调试·rest api·api集成·企业信息查询