Python实现描述性统计

时间:2019-11-15
本文章向大家介绍Python实现描述性统计,主要包括Python实现描述性统计使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

该篇笔记由木东居士提供学习小组、资料

描述性统计的概念很好理解,在日常工作中我们也经常会遇到需要使用描述性统计来表述的问题。以下,我们将使用Python实现一系列的描述性统计内容。

有关python环境的安装就次略过。

本次数据集由数据科学家联盟提供,https://pan.baidu.com/s/1lXAnyvSoti-U44MU2fubgw。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

data = pd.read_excel(r'C:\Users\user\Desktop\描述性.xlsx',encoding='UTF-8')
data = data.iloc[:20]
集中趋势

#
计算平均值 # 法一 print("算术平均数:%.2f" %data.mean())
算术平均数:4.40

# 计算平均值
# 法二:几何平均数

data['data'] = data['data'].astype(int)
s = 1
for i in data['data']:
    s = i * s
print("几何平均数:%.2f" %np.sqrt(s))


几何平均数:351941.81
# 众数
# 法一:
print("众数为:%d," %data.mode().iloc[0])

众数为:4,

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

众数为:4, 众数的个数为:4,
# 中位数
# 法一:
print("中位数:%d" %data.median())

中位数:4

# 中位数
# 法二
print("中位数:%d" %np.percentile(data,50))

中位数:4


# 中位数
# 法三
print("中位数:%d" %data.quantile(.50))

中位数:4
离散趋势
#
方差 # 法一: print("方差:%d" %data.var()) 方差:6 # 方差 # 法二: s = 0 for i in data['data']: s = (i - data.mean())**2 + s print("方差:%d" %(s/(len(data)-1))) 方差:6
# 标准差
# 法一
print("标准差:%d" %data.std())

标准差:2


# 标准差
# 法二:
print("标准差:%d" %np.sqrt(s/(len(data)-1)))

标准差:2
# 极差
data.max() - data.min()

data    9
dtype: int32
# 平均绝对离差
M = 0
for i in data['data']:
    M += abs(i - data.mean())
    
print(M/len(data))


data    2.04
dtype: float64
# 上四分位数
# 法一
np.percentile(data,75)

6.0

# 上四分位数
# 法二
data.quantile(.75)

data    6.0
Name: 0.75, dtype: float64
# 下四分位数
# 法一
data.quantile(.25)


data    2.0
Name: 0.25, dtype: float64

# 下四分位数
# 法二:
np.percentile(data,25)


2.0
# 四分位差
np.percentile(data,75) - np.percentile(data,25)

4.0
# 离散系数
data.std()/data.mean()

data    0.582476
dtype: float64
分布的形状
#
偏度 from scipy import stats stats.skew(data['data']) 0.4264951788847028
# 峰度
stats.kurtosis(data['data'])

-0.5821005917159772
# 概括性信息
data.describe()


    data
count    20.000000
mean    4.400000
std    2.562893
min    1.000000
25%    2.000000
50%    4.000000
75%    6.000000
max    10.000000

参考链接:https://blog.csdn.net/qq_43315928/article/details/102151709

原文地址:https://www.cnblogs.com/zym-yc/p/11868088.html