Python对数据分组做箱型图

该文章详细描述了如何使用pandas处理CSV数据,按月份分组,然后生成箱型图展示每个月份的数值分布,涉及到了groupby、数据切片和matplotlib的boxplot函数。
摘要由CSDN通过智能技术生成

导入需要作图的CSV数据

df = pd.read_csv('data.zip',encoding='gbk')

数据描述

需求:对根据月份对数据进行分组后,作箱型图

将月份提取出来,并分组

df['月份'] = df['时间'].str[:7]
gro = df.groupby('月份')
for key,value in gro:
    print(key,value.shape)

作箱型图

for key,value in gro:
    print(key)
    value = value['1'].reset_index(drop=True)
    result_month = pd.concat([result_month,value],axis=1,ignore_index=True)
result_month.columns = ['2023年1月','2023年2月','2023年3月','2023年4月','2023年5月','2023年6月','2023年7月','2023年8月','2023年9月','2023年10月']
cols = ['2023年1月','2023年2月','2023年3月','2023年4月','2023年5月','2023年6月','2023年7月','2023年8月','2023年9月','2023年10月']
figsize = 15, 5 
figure, ax = plt.subplots(figsize=figsize)

#画箱体图
result_month.boxplot(
            labels = cols, 
            #notch = True,
            patch_artist= True,
            widths= 0.2,
            showfliers=False,   #异常值不显示
            #showmeans= True,
            #meanline= True,
            sym = '.',
#             meanprops={'marker':'+',               #设置均值的属性
#                        'markerfacecolor':'k',
#                        'markeredgecolor':'k',
#                        'markersize':5
#                       },
            boxprops = {'color':'black',            #设置箱体的属性
                        'facecolor':'#9999ff'
                        #'facecolor':'blue'
                       }, 
#             flierprops = {'marker':'.',             #设置异常值的属性
#                           #'markerfacecolor':'red',
#                           'color':'black'
#                          },
             medianprops = {'color':'black',
                            'linestyle':'--',        #设置中位数的属性
                            'linewidth':2
                           }
           )

plt.ylim(0,5)    #纵坐标的范围
plt.grid(axis='y',ls='--',alpha=0.5)  #显示网格线
plt.tight_layout()
plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值