python在数据集中加上_【python数据分析】:描述性统计分析之集中趋势(平均值、众数、中位数、百分位数)...

本文介绍了Python在数据集中进行集中趋势分析的方法,包括平均数(算术平均数、几何平均数、调和平均数)、中位数、众数和四分位数的概念。通过学习这些统计量,读者可以更好地理解和总结数据集的特征。
摘要由CSDN通过智能技术生成

•本文字数:约1300字•阅读时长:约5分钟•难度:2颗星

ddefdc56a1f256ac140a2525cd8b42b5.png

 集中趋势:

平均数(算数平均数、几何平均数、调和平均数)、众数、中位数等。

  • 平均值: 指在一组数据中所有数据之和再除以数据的个数。

  • 中位数:按顺序排列的一组数据中居于中间位置的数,即在这组数据中,有一半的数据比他大,有一半的数据比他小。

  • 众数:在一组数据中,出现次数最多的数据;是样本观测值在频数表中频数最多的那一组的组中值。

  • 四分位数:是指根据中位数分为2个部分后,再取每个部分的中位数。

aab059d81a016c4040e347e45adcbf62.png

968ea27af5eaceb403a0957500fb3bd9.gif模块导入

import numpy as npimport pandas as pdimport matplotlib.pyplot as plt%matplotlib inlineimport seaborn as snssns.set_style("darkgrid")plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置-黑体plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题sns.set(font='SimHei',font_scale=1.5)  # 解决Seaborn中文显示问题并调整字体大小

aab059d81a016c4040e347e45adcbf62.png

968ea27af5eaceb403a0957500fb3bd9.gif算数平均数

# 创建数据data = pd.DataFrame({'value':np.random.randint(100,120,100),                    'f':np.random.rand(100)})data['f'] = data['f'] / data['f'].sum()  # f为权重,这里将f列设置成总和为1的权重占比print(data.head())print('------')# 简单算数平均值 = 总和 / 样本数量 (不涉及权重)mean = data['value'].mean()print('简单算数平均值为:%.2f' % mean)# 加权算数平均值 = (x1f1 + x2f2 + ... + xnfn) / (f1 + f2 + ... + fn)mean_w = (data['value'] * data['f']).sum() / data['f'].sum()print('加权算数平均值为:%.2f' % mean_w)
   value         f
0 105 0.013713
1 102 0.014311
2 107 0.005183
3 100 0.017619
4 116 0.019326
------
简单算数平均值为:108.82
加权算数平均值为:109.11

aab059d81a016c4040e347e45adcbf62.png

968ea27af5eaceb403a0957500fb3bd9.gif位置平均数

# 众数是一组数据中出现次数最多的数,这里可能返回多个值m = data['value'].mode()print('众数为',m.tolist())# 中位数指将总体各单位标志按照大小顺序排列后,中间位置的数字med = data['value'].median()print('中位数为%i' % med)# 密度曲线data['value'].plot(kind = 'kde',style = '--k',grid = True)# 简单算数平均值plt.axvline(mean,color='r',linestyle="--",alpha=0.8)  plt.text(mean + 5,0.005,'简单算数平均值为:%.2f' % mean, color = 'r')# 加权算数平均值plt.axvline(mean_w,color='b',linestyle="--",alpha=0.8)  plt.text(mean + 5,0.01,'加权算数平均值:%.2f' % mean_w, color = 'b')# 中位数# **这里三个数text显示的横坐标一致,目的是图示效果不拥挤plt.axvline(med,color='g',linestyle="--",alpha=0.8)  plt.text(mean + 5,0.015,'中位数:%i' % med, color = 'g')
众数为 [100, 108]
中位数为108

13ca297ec518298ce78f11790392f740.png

aab059d81a016c4040e347e45adcbf62.png

968ea27af5eaceb403a0957500fb3bd9.gif百分位数

#分位数 法一 (np.percentile)q1=np.percentile(data['value'],25)  #四分位q2=np.percentile(data['value'],95) #95%位数print('上四分位数:%s'%q1)print('95分位数:%s'%q2)#分位数 法二 (df.quantile)df=pd.Series(data['value'])print('下四分位数:%s'%(df.quantile(.75)))data['value'].plot.box(grid = True,color = color,figsize = (10,3))
上四分位数:104.0
95分位数:118.0
下四分位数:113.25

427af62bdfce1b4b076c5b6561d36708.png

今天就先到这啦,早点休息哦~

加油,坚持就是胜利,学完你就是个宝藏女(男)孩啦~

fc76e1a4807c71bbd0ae30dc96ee59f8.gif

f66be1eb6e7a052133dc75e5fede721c.png

9f178ce22b9119c5a8bac7be1b46eee7.gifab9fe2a72090cddc4801cb9b23f6a5dd.gife6d710fdd726d18646fd332a5e65aa3e.gifab9fe2a72090cddc4801cb9b23f6a5dd.gif9f178ce22b9119c5a8bac7be1b46eee7.gif

一起学习的小伙伴如果有什么想法或者意见,欢迎沟通~

投稿|沟通邮箱:yzhmry1314@163.com

96deaa3d431c30e8f5ef58c35d011458.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值