Python数据分析实战:零基础玩转Pandas数据可视化

在这里插入图片描述

包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

在这个数据驱动的时代,掌握数据可视化技能已经成为一项必备技能。
不知道你是否曾经遇到过这样的困扰:手上有一堆Excel数据,却不知道如何让它们"说话"?或者被领导要求做数据分析报告,却只会制作最基础的图表?今天,我就要带大家一起学习如何使用Python中的Pandas库,轻松实现数据可视化,让枯燥的数据变得生动有趣。

准备工作

在开始之前,我们需要安装以下Python库:
pip install pandas numpy matplotlib seaborn   
导入必要的库:
import pandas as pd   
import numpy as np   
import matplotlib.pyplot as plt   
import seaborn as sns   
# 设置中文字体显示   
plt.rcParams['font.sans-serif'] = ['SimHei']   
plt.rcParams['axes.unicode_minus'] = False   

案例一:网店销售分析

场景描述

  • 小王经营着一家网店,想要分析店铺近期的销售情况,找出销售旺季和淡季。
# 生成180天的销售数据   
dates = pd.date_range('2023-07-01', '2023-12-31')   
daily_sales = np.random.normal(5000, 1000, len(dates))   
seasonal_effect = np.sin(np.linspace(0, 2*np.pi, len(dates))) * 1000      
df_sales = pd.DataFrame({'日期': dates,'销售额': daily_sales + seasonal_effect})      
# 按周统计平均销售额   
weekly_sales = df_sales.set_index('日期').resample('W')['销售额'].mean()      
plt.figure(figsize=(12, 6))   
weekly_sales.plot(kind='line', marker='o', linewidth=2)   
plt.title('网店周度销售趋势图')   
plt.xlabel('日期')   
plt.ylabel('平均日销售额(元)')   
plt.grid(True, linestyle='--', alpha=0.7)   
plt.show()   
小贴士:使用resample()函数可以轻松实现数据重采样,比如将日数据转换为周数据或月数据,使趋势更清晰。

案例二:顾客画像分析

场景描述

  • 分析不同年龄段顾客的消费习惯,帮助制定精准营销策略。
# 生成顾客年龄和消费数据   
age_groups = ['18-25岁', '26-35岁', '36-45岁', '46-55岁', '56岁以上']   
customer_data = pd.DataFrame({'年龄段': 
np.repeat(age_groups, 100),'消费金额': 
np.random.normal(1000, 200, 100),  
# 18-25岁
np.random.normal(2000, 400, 100),  # 26-35岁           
np.random.normal(2500, 500, 100),  # 36-45岁           
np.random.normal(2200, 450, 100),  # 46-55岁           
np.random.normal(1500, 300, 100)   # 56岁以上]})      
plt.figure(figsize=(10, 6))   
sns.boxplot(x='年龄段', y='消费金额', data=customer_data)   
plt.title('不同年龄段顾客消费分布')   
plt.xticks(rotation=45)   
plt.show()  
小贴士:箱型图能直观显示数据的分布情况,包括中位数、四分位数和异常值,特别适合比较不同组别的数据分布特征。

案例三:商品退货分析

场景描述

  • 分析各类商品的退货率,找出问题商品并优化库存
# 创建商品退货数据   
categories = ['服装', '电子产品', '食品', '美妆', '家居']   
orders = pd.Series([1200, 800, 1500, 1000, 900])   
returns = pd.Series([120, 40, 45, 80, 27])      
return_data = pd.DataFrame({'商品类别': categories,'订单量': orders,'退货量': returns})   
return_data['退货率'] = (return_data['退货量'] / return_data['订单量'] * 100).round(1)      
# 创建组合图表   
fig, ax1 = plt.subplots(figsize=(10, 6))      
# 绘制订单量柱状图   
ax1.bar(categories, return_data['订单量'], color='skyblue', alpha=0.5)   
ax1.set_ylabel('订单量', color='skyblue')     
# 绘制退货率折线图   
ax2 = ax1.twinx()   
ax2.plot(categories, return_data['退货率'], color='red', marker='o', linewidth=2)   
ax2.set_ylabel('退货率(%)', color='red')      
plt.title('各品类订单量与退货率分析')   
plt.show()   
小贴士:使用twinx()可以创建双坐标轴图表,同时展示不同量级的数据,使图表更加信息丰富。

案例四:促销效果分析

场景描述

  • 分析不同促销方式对销售的影响,优化促销策略。
# 创建促销数据   
promotion_data = 
pd.DataFrame
({'促销类型': ['满减', '折扣', '优惠券', '限时秒杀', '赠品'], '参与人数': [5000, 4500, 3800, 6000, 2500],       
转化率': [0.25, 0.2, 0.15, 0.3, 0.1],       
'平均客单价': [200, 180, 150, 250, 120]})      
# 计算气泡大小   
promotion_data['销售额'] = (promotion_data['参与人数'] *                               
promotion_data['转化率'] *                               
promotion_data['平均客单价'])      
plt.figure(figsize=(10, 6))   
plt.scatter(promotion_data['转化率'],               
promotion_data['平均客单价'],              
s=promotion_data['参与人数']/30,              
alpha=0.6)      
# 添加标签   
for i, txt in enumerate(promotion_data['促销类型']):       
plt.annotate(txt,                    
(promotion_data['转化率'][i],                     
promotion_data['平均客单价'][i]))      
plt.title('促销方式效果分析')   
plt.xlabel('转化率')   
plt.ylabel('平均客单价(元)')   
plt.grid(True, linestyle='--', alpha=0.3)   
plt.show()   
小贴士:气泡图可以同时展示三个维度的数据,气泡大小可以表示数据的第三个维度,使用annotate()函数可以为气泡添加标签。

动手练习

下面是一些练习题,帮助你巩固所学内容:
  1. 基础练习: 分析某产品一年的月度销量数据,创建柱状图并添加同比增长率折线图。
  2. 进阶练习: 分析不同时段(早、中、晚)的销售分布,创建堆叠柱状图展示各品类在不同时段的销售占比。
  3. 挑战练习: 创建一个交互式的销售分析面板,包含:
  • 销售趋势图
  • 品类占比饼图
  • 地区分布热力图
示例代码框架:
# 创建示例数据   
time_periods = ['早上', '中午', '晚上']   
categories = ['食品', '饮料', '零食']   
sales_data = np.random.randint(100, 1000, size=(3, 3))      
# 创建DataFrame   
df = pd.DataFrame(sales_data,                     
index=time_periods,                    
columns=categories)     
 # 在这里添加你的可视化代码   

实用技巧总结

数据预处理技巧:
  • 使用fillna()处理缺失值
  • 使用drop_duplicates()删除重复数据
  • 使用astype()转换数据类型
  • 使用sort_values()对数据进行排序
图表美化技巧:
  • 使用plt.style.available查看可用的样式主题
  • 合理使用颜色搭配增加可读性
  • 添加图例和标签说明
  • 调整字体大小和方向
可视化选择技巧:
  • 趋势分析:折线图
  • 占比分析:饼图、堆叠柱状图
  • 分布分析:直方图、箱线图
  • 相关性分析:散点图、热力图
  • 地理分布:地图可视化
在这个数据时代,掌握数据可视化技能不仅能让我们的工作更加高效,还能帮助我们从数据中发现更多洞见。通过这篇教程,相信你已经掌握了使用Pandas进行数据可视化的基本技能。记住,实践出真知,建议你立即动手尝试,相信很快你就能创作出专业的数据可视化作品!

图片

总结

  • 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

文末福利

  • 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!
  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,学习不再是只会理论
  • ④ 华为出品独家Python漫画教程,手机也能学习

可以扫描下方二维码领取【保证100%免费在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值