梳理大纲: 数据清洗整理与展示
【1】数据预处理
【2】数据整理
【3】数据展示(以Python代码示意)参考资料:
《统计学 第七版》第三章
《可汗学院 统计学视频》 第3-10集From 统计学Statistics 学习小组:由【木东居士】公众号 定期发起
对数据感兴趣的伙伴们 可一同在此交流学习
【数据预处理】
数据审核:
1.是否有遗漏(Nan)?
2.是否存在错误值?
3.是否存在异常值?
注意:对于二手数据,需要弄清楚 数据来源,数据口径( 统计口径包括统计方式、统计范围等指标)以及相关背景材料
数据筛选
Excel:可点击“筛选”功能实现
Sql:可使用where语句
Python:可使用pandas库中的loc,iloc,ix等语句
数据排序
Excel:可点击“排序”功能实现
Sql:可使用order语句
Python:可使用pandas库中的sort_index,sort_values等语句
数据透视表pivot table
Excel:选择区域后,可按“Alt+D+P”调用
Python:可使用pivotable功能实现
———————————————————————————————————
【品质数据的整理】
分类数据的整理:
常采用【频数&频数分布】
列联表(两个或者两个以上变量的交叉分类)
交叉表 cross table(二维列联表)
比例Proportion:样本与总体的比值(百分比)
比率Ratio:样本中不同类别的比值,非与总体的比值,所以结果可能大于1
顺序数据的整理:
可使用 累计频数&累计频率
(排序后,分为向上累加和向下累加的形式)
数值型数据的整理:
可使用分组(单变量值分组/组距分组)来观察数据的分布特征
分组规定:统计学中默认使用“上组限不在内”的方法,即a<=x<b
分组又分为:等距分组 & 不等距分组(如年龄分段:少年&青年&中年&老年)
一般使用该组的组中值代表该组:组中值 =(下限值+上限值)/ 2
———————————————————————————————————
【品质数据的图表展示】
适合数值型的图示:
直方图:表示分组后的频率分布
茎叶图:表现分布形状和离散情况
箱型图:由最大/小,中位数和两个四分位数组成,反映原始数据的分布(可对多组数据的分布进行比较)
线图(折线图):可表现时间序列
【双变量】散点图
【三变量】气泡图:横纵坐标双变量,第三变量通过气泡大小体现
【多变量】雷达图/蜘蛛图(类似于英雄联盟KDA表现)
通用图示:
条形图(纵置时为柱形图)
帕累托图(按各类别频数 排序后绘制的图表)
饼图:表现各样本占全部数据的比例分布
环形图(旭日图)可理解为饼图的无限辐射形态
其他图示补充
漏斗图:展示各阶段的流量变化情况
力导图:展现放射状的关系图谱
热力图:更形象地展现各维度(虚拟or现实领域)的数据强度
更多图表,可借鉴一些图表网站,如:
https://www.highcharts.com.cn/demo/highcharts/sankey-diagram
———————————————————————————————————
附:部分图表代码
直方图 ( Python Matplotlib 绘制 ):
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
#从pyplot导入MultipleLocator类,这个类用于设置刻度间隔
plt.hist(HP,bins=25, normed=0, facecolor="green", edgecolor="black", alpha=0.8)
plt.xlabel('HP')
plt.ylabel('Number')
plt.title(r'HP of Pokeman')
ax=plt.gca()
#ax为两条坐标轴的实例
x_major_locator=MultipleLocator(20)
#把x轴的刻度间隔设置为20,并存在变量里
ax.xaxis.set_major_locator(x_major_locator)
#把y轴的刻度间隔设置为10,并存在变量里
茎叶图 ( Pthon Matplotlib 绘制 ):
from itertools import groupby
data = '89 79 57 46 1 24 71 5 6 9 10 15 16 19 22 31 40 41 52 55 60 61 65 69 70 75 85 91 92 94'
for k, g in groupby(sorted(data.split()), key=lambda x: int(x) // 10):
lst = map(str, [int(_) % 10 for _ in list(g)])
print (k, '|', ' '.join(lst))
箱型图( Pthon Matplotlib 绘制 ):
import matplotlib.pyplot as plt
fig = plt.figure() # 创建画布
ax = plt.subplot() # 创建作图区域
plt.boxplot([Grass_HP,Water_HP,Fire_HP])
plt.xlabel('Pokeman_Type')
plt.ylabel('HP')
plt.title(r'HP of different_type Pokeman')
ax.set_xticklabels(['Grass', 'Water', 'Fire'])
———————————————————————————————————
碎觉,以后会陆续更新 图表代码
(还是Seaborn的会好看些…)