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

相关推荐
码云骑士1 小时前
07-Python装饰器从入门到源码(下)-带参数装饰器与wraps
开发语言·python
LAM LAB1 小时前
【Web】网页如何模拟移动端获取定位\定位模拟测试
开发语言·前端·javascript
KIO no way1 小时前
AI发布工作流配置指南_用CSDN_AI数字营销把分发自动化
人工智能·python·自动化
小糯米6011 小时前
C语言文件操作
c语言·开发语言·数据结构
caimouse1 小时前
Reactos 第 9 章 设备驱动 — 9.4 内核劳务线程
开发语言·windows
Doker 多克1 小时前
Spring AI Alibaba—快速构建ReactAgent
java·开发语言·前端·ai编程
张忠琳1 小时前
【Go 1.26.4】Golang Slice 深度解析
开发语言·后端·golang
YangYang9YangYan2 小时前
文科报考大数据管理专业学数据分析的价值
数据挖掘·数据分析
小王毕业啦2 小时前
2012-2024年 上市公司-企业业务招待费数据 (xlsx+文献)
大数据·人工智能·数据挖掘·数据分析·社科数据·实证分析·经管数据