包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里] 】!
在这个数据驱动的时代,掌握数据可视化技能已经成为一项必备技能。
不知道你是否曾经遇到过这样的困扰:手上有一堆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
案例一:网店销售分析
场景描述
小王经营着一家网店,想要分析店铺近期的销售情况,找出销售旺季和淡季。
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 ) ,
np. random. normal( 2000 , 400 , 100 ) ,
np. random. normal( 2500 , 500 , 100 ) ,
np. random. normal( 2200 , 450 , 100 ) ,
np. random. normal( 1500 , 300 , 100 )
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()
函数可以为气泡添加标签。
动手练习
下面是一些练习题,帮助你巩固所学内容:
基础练习 : 分析某产品一年的月度销量数据,创建柱状图并添加同比增长率折线图。进阶练习 : 分析不同时段(早、中、晚)的销售分布,创建堆叠柱状图展示各品类在不同时段的销售占比。挑战练习 : 创建一个交互式的销售分析面板,包含:
示例代码框架:
time_periods = [ '早上' , '中午' , '晚上' ]
categories = [ '食品' , '饮料' , '零食' ]
sales_data = np. random. randint( 100 , 1000 , size= ( 3 , 3 ) )
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%免费 】