DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)参数说明如下表所示:
参数名称 | 参数说明 |
---|---|
n | 表示要抽取的行数。 |
frac | 表示抽取的比例,比如 frac=0.5,代表抽取总体数据的50%。 |
replace | 布尔值参数,表示是否以有放回抽样的方式进行选择,默认为 False,取出数据后不再放回。 |
weights | 可选参数,代表每个样本的权重值,参数值是字符串或者数组。 |
random_state | 可选参数,控制随机状态,默认为 None,表示随机数据不会重复;若为 1 表示会取得重复数据。 |
axis | 表示在哪个方向上抽取数据(axis=1 表示列/axis=0 表示行)。 |
import pandas as pd dict = {'name':["Jack", "Tom", "Helen", "John"],'age': [28, 39, 34, 36],'score':[98,92,91,89]} info = pd.DataFrame(dict) #默认随机选择两行 info.sample(n=2) #随机选择两列 info.sample(n=2,axis=1)输出结果:
name age score 3 John 36 89 0 Jack 28 98 score name 0 98 Jack 1 92 Tom 2 91 Helen 3 89 John再来看一组示例:
import pandas as pd info = pd.DataFrame({'data1': [2, 6, 8, 0], 'data2': [2, 5, 0, 8], 'data3': [12, 2, 1, 8]}, index=['John', 'Parker', 'Smith', 'William']) info #随机抽取3个数据 info['data1'].sample(n=3) #总体的50% info.sample(frac=0.5, replace=True) #data3序列为权重值,并且允许重复数据出现 info.sample(n=2, weights='data3', random_state=1)输出结果:
随机选择3行数据: William 0 Smith 8 Parker 6 Name: data1, dtype: int64 data1 data2 data3 John 2 2 12 William 0 8 8 data1 data2 data3 John 2 2 12 William 0 8 8
本文链接:http://task.lmcjl.com/news/17303.html