在我们日常的数据分析工作中,常用到随机抽样这一数据获取的方法。
如果我们想在一个大的数据总体中,按照数据的不同分类进行分层抽样,在Python中如何用代码来实现这一操作呢。
下面我们要进行分层抽样的应用背景:
随机抽取2017年重庆市不同区域高中学生的高考成绩。
这里数据总体为2017年重庆市所有区域高中的学生高考成绩。
分层抽样按照区域分类。
设沙坪坝区为1,渝北区为2,南岸区为3(作为方法展示,只列出三个区,实际分析中按照抽样方法添加参数即可
代码实现:
#分层抽样
gbr = data.groupby("area")
gbr.groups
typicalFracDict = {
1: 0.2,
2: 0.4,
3: 0.6
}
def typicalSampling(group, typicalFracDict):
name = group.name
frac = typicalFracDict[name]
return group.sample(frac=frac)
result = data.groupby(
'area', group_keys=False
).apply(typicalSampling, typicalFracDict)
由此,即实现了将重庆市2017年不同区域学生高考成绩按照不同区域的比例进行随机抽取,以方便完成后续的数据分析。