Python数据分析与可视化实战

研究python数据分析和数据可视化实现销售数据的展示,学会python分析数据应用,主要掌握pandas和matplotlib的python扩展库的使用。

  1. 环境准备

确保已安装以下库:

pip install pandas matplotlib

  1. 数据加载与清洗

示例数据(假设 sales_data.csv):

日期,产品类别,销售额,销售量,地区

2023-01-01,电子产品,5000,10,北京

2023-01-02,服装,3000,15,上海

2023-01-03,食品,2000,20,广州

...

加载数据:

import pandas as pd

读取 CSV 文件

df = pd.read_csv("sales_data.csv")

查看前5行

print(df.head())

查看数据信息(列类型、缺失值等)

print(df.info())

数据清洗:

处理缺失值(填充或删除)

df.fillna(0, inplace=True) # 用0填充缺失值

或 df.dropna(inplace=True) # 删除缺失值行

转换日期格式

df"日期" = pd.to_datetime(df"日期")

删除重复数据

df.drop_duplicates(inplace=True)

  1. 数据分析

基础统计:

总销售额、平均销售额

total_sales = df"销售额".sum()

average_sales = df"销售额".mean()

print(f"总销售额: {total_sales}, 平均销售额: {average_sales}")

按产品类别汇总

category_sales = df.groupby("产品类别")"销售额".sum().sort_values(ascending=False)

print(category_sales)

高级分析:

按地区和时间统计销售额

df"月份" = df"日期".dt.month # 提取月份

region_month_sales = df.groupby("地区", "月份")"销售额".sum().unstack()

print(region_month_sales)

  1. 数据可视化

折线图(销售趋势):

import matplotlib.pyplot as plt

按月统计总销售额

monthly_sales = df.groupby("月份")"销售额".sum()

plt.figure(figsize=(10, 6))

plt.plot(monthly_sales.index, monthly_sales.values, marker='o', linestyle='-')

plt.title("月度销售趋势")

plt.xlabel("月份")

plt.ylabel("销售额(元)")

plt.grid(True)

plt.show()

柱状图(产品类别对比):

category_sales = df.groupby("产品类别")"销售额".sum()

plt.figure(figsize=(10, 6))

category_sales.plot(kind='bar', color='skyblue', 'lightgreen', 'salmon')

plt.title("各产品类别销售额对比")

plt.xlabel("产品类别")

plt.ylabel("销售额(元)")

plt.xticks(rotation=45)

plt.show()

饼图(地区销售占比):

region_sales = df.groupby("地区")"销售额".sum()

plt.figure(figsize=(8, 8))

plt.pie(region_sales, labels=region_sales.index, autopct='%1.1f%%', startangle=90)

plt.title("各地区销售额占比")

plt.show()

箱线图(销售额分布):

plt.figure(figsize=(10, 6))

df.boxplot(column="销售额", by="产品类别", grid=False)

plt.title("不同产品类别销售额分布")

plt.suptitle("") # 移除默认标题

plt.xlabel("产品类别")

plt.ylabel("销售额(元)")

plt.show()

  1. 完整分析报告示例

生成月度销售报告

monthly_report = df.groupby("月份").agg({

"销售额": "sum", "mean",

"销售量": "sum"

}).reset_index()

print("月度销售报告:")

print(monthly_report)

可视化总销售额和销售量

fig, ax1 = plt.subplots(figsize=(12, 6))

color = 'tab:red'

ax1.set_xlabel('月份')

ax1.set_ylabel('销售额(元)', color=color)

ax1.plot(monthly_report"月份", monthly_report"销售额""sum", color=color, marker='o')

ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx()

color = 'tab:blue'

ax2.set_ylabel('销售量', color=color)

ax2.plot(monthly_report"月份", monthly_report"销售量""sum", color=color, marker='s', linestyle='--')

ax2.tick_params(axis='y', labelcolor=color)

plt.title("月度销售额与销售量对比")

plt.show()

  1. 进阶技巧

  2. Seaborn 美化图表:

import seaborn as sns

sns.set_theme(style="whitegrid") # 设置主题

  1. 动态可视化:
  • 使用 Plotly或 Pyecharts生成交互式图表。
  1. 数据透视表:

pivot_table = pd.pivot_table(df, values='销售额', index='地区', columns='产品类别', aggfunc='sum')

  1. 学习资源
相关推荐
郝学胜-神的一滴15 分钟前
AI 编程智能体 16:从零基础搭建到精细化优化
人工智能·python·算法·语言模型·langchain·pip
又蓝28 分钟前
【元宝搜索开发者征文大赛】用 FastAPI + Vue3 做了个 AI 炒股工具,接了六个分析师和腾讯元宝搜索
人工智能·python·ai·fastapi
2601_9669496530 分钟前
为什么不应该把 QuantDash API Key 直接写进公开代码仓库?从 Git 提交历史理解凭证泄露风险
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
在世修行30 分钟前
智学文枢:文科分析引擎
python·ai·pyside·文科分析
包小黑1 小时前
Python 转 EXE (实用工具)
开发语言·python
全栈练习生1 小时前
DeepSeek 稀疏注意力
python·ai
我命由我123451 小时前
6-3.Python 异常处理 - 异常处理进阶(else 块与 finally 块、异常传递、自定义异常)
开发语言·前端·数据库·后端·python·学习·java-ee
FYKJ_20101 小时前
springboot高考志愿填报推荐系统14332-计算机课程设计、毕业设计
javascript·spring boot·python·架构·django·课程设计·高考
卷无止境1 小时前
长篇写作 Skill 横向盘点:从单文件指令到多智能体流水线
后端·python
外收内放1 小时前
FastAPI猜字谜实战(8):收官
开发语言·python·学习·fastapi