实践-python简单实现数据度量
作业链接:
前言:本节主要是针对前期的学习进行简单的动手操作,以加深对常用度量指标的计算逻辑和相关函数理解与掌握。
无需死记硬背,了解或简单知道怎么用就行。而且掌握一个自己熟悉且实用的就可以,比如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()