随机抽样:按照一定的行数或者比例进行数据的抽取
随机抽样行数公式:
DataFrame.sample(n,frac,replace=False)
n 按个数抽样
frac 按百分比抽样
replace 是否放回抽样,默认false为不放回
import numpy
# 设置随机种子seed( )
# 用于指定随机数生成时所用算法开始的整数值,
# 如果使用相同的seed( )值,则每次生成的随即数都相同,
# 如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
numpy.random.seed(seed=2)
1、 按照个数抽样
data.sample(n=10)
2、按照百分比进行抽样
data.sample(frac=0.02)
3、有放回的抽样,有可能两次抽到同样的数据
data.sample(n=10,replace=True)
4、典型抽样 分成抽样
numpy.random.seed(seed=2) # 如果使用相同的seed( )值,则每次生成的随即数都相同,
# 用groupby进行数据的分组,根据班级
gbr=data.groupby('class')
# 获取分组后gbr的数据
gbr.groups
# 分层抽样字典定义 组名:数据个数
typicalNDict={
1:2,
2:4,
3:6
}
#函数定义
def typicalsamling(group,typicalNDict):
name=group.name
n=typicalNDict[name]
return group.sample(n=n)
result=data.groupby(
'class',group_keys=False
).apply(typicalsamling,typicalNDict)
返回值:抽样后的数据框