数据概括性度量:python求众数、中位数、分位数、平均数

数据概括性度量:python求众数、中位数、分位数、平均数

在这里插入图片描述

import pandas as pd

#众数
#方法一
df = pd.read_excel("./data/例4.3.xlsx")
data = df['月收入']
print('使用方法一,众数为:',data.mode().iloc[0]) #先取众数,iloc取行号(第一行)

#方法二
from collections import Counter
counts = Counter(data)
# most_common(1) ---> [(1),(2),(3),(4)] 列表里包含元组
# most_common(1)[0] ---> (1) 将列表第一个元组取出来
# most_common(1)[0][0] ---> 元组取第一个数据
print('使用方法二,众数为:',counts.most_common(1)[0][0])

#方法三
from scipy import stats
mode_num = stats.mode(data)
print("使用方法三,众数为:%d, 众数的个数为:%d,"%(mode_num[0][0], mode_num[1][0]))

#方法四
import numpy as np
# bin的数量比x中的最大值大1,每个bin给出了它的索引值在x中出现的次数
# 我们可以看到x中最大的数为7,因此bin的数量为8,那么它的索引值为0->7
# x = np.array([0, 1, 1, 3, 2, 1, 7])
# 索引0出现了1次,索引1出现了3次,索引2出现1次,索引3出现1次,索引4出现0次,索引5出现了0...索引7出现1次
# np.bincount(x)
# 因此,输出结果为:array([1, 3, 1, 1, 0, 0, 0, 1])
counts = np.bincount(data)
print(counts)
print('使用方法四,众数为:',np.argmax(counts))

#中位数
#方法一
print('使用方法一,中位数为:' ,data.median())

#方法二
print('使用方法二,中位数为:' ,np.percentile(data, 50))

#方法三
# quantile的优点是与pandas中的groupby结合使用,可以分组之后取每个组的某分位数
print('使用方法三,中位数为:', data.quantile(0.50))

#分位数
#方法一
print('使用方法一,下四位数为:',np.percentile(data, 25))
print('使用方法一,上四位数为:',np.percentile(data, 75))

#方法二
print('下四分位数为:', data.quantile(0.25))
print('上四分位数为:', data.quantile(0.75))

#算数平均数
print('平均数为:',data.mean())
#几何平均数
import math
s = 1
for i in data:
    s *= i
print('几何平均数为:',math.pow(s,1/len(data)))

#异众比率
modeCount = Counter(data).most_common(1)[0][1]
totalCount = len(data)
radio = (totalCount - modeCount) / len(data)
print('异众比率为:',radio)

#四分位差
# 法一
print('四分位差为:', np.percentile(data, 75) - np.percentile(data, 25))
# 法二
print('四分位差为:', data.quantile(0.75) - data.quantile(0.25))

# 极差
print('极差为:', data.max() - data.min())

# 平均差
meanData = data.mean()
s = 0
for i in data:
    s += (abs(i - meanData))
print('平均差为:', s/len(data))

# 方差
print('方差为:', np.var(data))

# 标准差
print('标准差为:', np.std(data))

#偏度
print('偏度为:', stats.skew(data))

#峰度
print('峰度为:', stats.kurtosis(data))

[参考文档]https://mp.weixin.qq.com/s/VVi1DFsypcvXCpyJP_rD5Q
https://blog.csdn.net/qq_43315928/article/details/102151709
https://blog.csdn.net/xlinsist/article/details/51346523

  • 10
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用: 在Python,使用np.mean()函数来计算数组的平均值。该函数可以接受多个参数,包括输入的数组a、计算的轴axis、数据类型dtype等。默认情况下,np.mean()函数会计算整个数组的平均值,并返回一个标量值。 引用: 如果想改变计算的数据类型,可以使用参数dtype。例如,通过设置dtype=np.float32,可以将计算结果的数据类型设置为32位浮点数。 引用: 当输入一个二行二列的矩阵时,可以使用np.mean()函数计算该矩阵的平均值。默认情况下,np.mean()函数会计算整个矩阵的平均值,并返回一个标量值。 综上所述,np.mean()函数是用于计算数组或矩阵的平均值的Python函数,可以根据需要设置参数来改变计算的方式和结果的数据类型。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [np.mean参数和用法](https://blog.csdn.net/m0_51581537/article/details/129392019)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Numpy】numpy.mean() 的用法](https://blog.csdn.net/m0_51816252/article/details/126200259)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值