实现对DataFrame对象随机采样
pandas是基于numpy建立起来的,所以numpy大部分函数可作用于DataFrame和Series数据结构。
numpy.random.permutation(n)函数可以产生0~n范围内的n个随机数,输出形式为numpy数组。
In:
import numpy as np
sampler = np.random.permutation(10)
sampler
Out:
array([7, 6, 0, 8, 2, 5, 3, 1, 9, 4])
新建一个(10 * 5) DataFrame对象,然后随机从中抽取5行
In:
import pandas as pd import numpy as np df = pd.DataFrame(np.arange(50).reshape(10,5)) df
Out:
In:
sample_df = np.random.permutation(len(df)) sample_df
Out:
array([9, 4, 6, 8, 3, 5, 0, 1, 7, 2])
使用Pandas的take函数作用于数组sample_df,结果是对df进行了随机排序,选取5行
In:
df_new = df.take(sample_df[:5])
df_new
out:
结果是随机选出来的(5*5)的新DataFrame对象