统计学学习

实践-python简单实现数据度量

2019-11-17  本文已影响0人  HenlyX

作业链接:

前言:本节主要是针对前期的学习进行简单的动手操作,以加深对常用度量指标的计算逻辑和相关函数理解与掌握。

无需死记硬背,了解或简单知道怎么用就行。而且掌握一个自己熟悉且实用的就可以,比如excel,使用方便 但是数据量多,如10W行,则不再适用,spss则更侧重于图表分析,sql主要是针对较大数据量的线上表数据。而python更倾向于数据量在100W以内之间使用

1.excel篇

常用函数:

平均数(AVERAGE )、

中位数(MEDIAN)、四分位数(QUARTILE)

众数(MODE)、极差(MAX-MIN),方差:VAR(样本) VARP(总体) 留意参数范围,因为涉及方差计算时是除以n,还是n-1

2.spss篇

         spss下载安装及简单使用,对照第三章的例题进行实践。已完成

3.sql篇

       作为一个习惯了写sql的数据开发而言,用excel直言没有数据库方便,只是平均数。极差还好算

中位数(需自关联)、众数(需分组计算求最多的那个)、VAR_SAMP (样本方差)

标准差:人口标准差STD和STDDEV_SAMP (样本标准差)

4.python篇

本篇参照了其他人的作业:数据的概括性度量

但是 在引用dataframe数据时 有些报错做了调整


#coding=utf-8

import sys

import pandas as pd

import numpy as np

import math

import matplotlib.pyplot as plt

file_path ="D:\\MyDownloads\\Download\\123.csv"

data = pd.read_csv(file_path,encoding="UTF-8").iloc[0:20]

print(data.dtypes)

#平均值 算数平均值&几何平均值

print("算数平均数:%.2f" %data.mean())

s =1

for iin data['data'].tolist():

# print(i)

    s = s * i

#print(s)

print("几何平均数: %.2f" %math.sqrt(s))

#众数

print("众数为:%d," %data.mode().iloc[0])

from scipy.statsimport mode

mode_num = mode(data)

print("众数为:%d, 众数的个数为:%d,"%(mode_num[0][0], mode_num[1][0]))

print(mode_num)

print(data.mode())

#中位数

# 中位数

# 法一:

print("中位数1:%d" %data.median())

# 法二

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

# 法三

print("中位数3:%d" %data.quantile(.50))

# 方差

# 法一:

print("方差1:%d" %data.var())

# 法二:

s =0

#for i in data:

for iin data['data'].tolist():

s = (i - data.mean())**2 + s

print("方差2:%d" %(s/(len(data)-1)))

# 标准差

# 法一

print("标准差1:%d" %data.std())

# 法二:

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

# 极差

print("极差:%d" %(data["data"].max() - data["data"].min()))

# 平均绝对离差

M =0

for iin data["data"].tolist():

M +=abs(i - data.mean())

print("平均绝对离差:%f" %(M/len(data)))

# 上四分位数

# 法一

print("上四分位数:%d" %(data.quantile(.75)))

# 法二

print("上四分位数:%d" %(np.percentile(data,75)))

data.quantile(.75)

# 下四分位数

# 法一

print("下四分位数:%d" %(data.quantile(.25)))

# 法二:

np.percentile(data,25)

print("下四分位数:%d" %(np.percentile(data,25)))

# 四分位差

print("四分位差:%d" %(np.percentile(data,75) - np.percentile(data,25)))

# 离散系数

print("离散系数:%f" %(data.std()/data.mean()))# 0.5824757050156248

# 偏度

from scipyimport stats

print("偏度:%f" %stats.skew(data))# 0.4264951788847028

# 峰度

print("峰度:%.16f" %stats.kurtosis(data))# -0.5821005917159772

# 直接输出data的概括性信息

print(data.describe())

import seabornas sns

sns.set_palette("hls")#设置所有图的颜色,使用hls色彩空间

sns.distplot(data,color="r",bins=10,kde=True)

plt.show()

上一篇 下一篇

猜你喜欢

热点阅读