需求:
有时候我们只需要数据集中的一部分,并不需要全部的数据。
解决办法:
这个时候我们就要对数据集进行随机的抽样。
pandas中自带有抽样的方法。
应用场景:
我有10W行数据,每一行都11列的属性。
现在,我们只需要随机抽取其中的2W行。
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
参数说明:
n是要抽取的行数。(例如n=20000时,抽取其中的2W行)
frac是抽取的比列。(例如frac=0.8,就是抽取其中80%)
replace抽样后的数据是否代替原DataFrame()
weights这个是每个样本的权重。
random_state随机种子,整数或numpy.random.RandomState
axis是选择抽取数据的行还是列。axis=0的时是抽取行,axis=1时是抽取列(也就是说axis=1时,在列中随机抽取n列,在axis=0时,在行中随机抽取n行)
范例:
df = pd.DataFrame({‘num_legs’: [2, 4, 8, 0],
‘num_wings’: [2, 0, 0, 0],
‘num_specimen_seen’: [10, 2, 1, 8]},
index=[‘falcon’, ‘dog’, ‘spider’, ‘fish’])
df.sample(10, replace = True)