DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None) [source]
从对象轴返回随机的项目样本。
您可以使用random_state
来实现重现性。
参数: | n : 从轴返回的项目数。 不能与 如果 frac : 要返回的轴项的Fraction。不能与 replace: 允许或不允许对同一行进行多次抽样。 weights : 默认的 如果传递了一个Series,将与目标对象上的索引对齐。 权重中未被采样对象发现的索引值将被忽略, 权重中未被采样对象的索引值将被赋值为零。 如果在 将在 除非权值是一个Series, 否则权值必须与被采样的轴线长度相同。 如果权重的和不是1,它们将被规范化为和为
random_state :
如果 种子为随机数生成器,如果 在版本1.1.0中改变: 对象现在作为种子传递给 axis : 从轴返回的项目数。 不能与frac一起使用。 如果 则 |
返回值: | Series 或 DataFrame 与调用者相同类型的新对象, 包含从调用者对象中随机取样的n项。 |
Notes
如果frac >1
,则应将replacement
设置为True
。
例子
>>> 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
num_legs num_wings num_specimen_seen
falcon 2 2 10
dog 4 0 2
spider 8 0 1
fish 0 0 8
从中提取3个随机元素Series df['num_legs']:请注意,我们使用random_state来确保示例的可重复性
>>> df['num_legs'].sample(n=3, random_state=1)
fish 0
spider 8
falcon 2
Name: num_legs, dtype: int64
随机DataFrame替换的50%样品:
>>> df.sample(frac=0.5, replace=True, random_state=1)
num_legs num_wings num_specimen_seen
dog 4 0 2
fish 0 0 8
DataFramewith替换的upsample样本:请注意,对于frac参数> 1 ,replace参数必须为True
>>> df.sample(frac=2, replace=True, random_state=1)
num_legs num_wings num_specimen_seen
dog 4 0 2
fish 0 0 8
falcon 2 2 10
falcon 2 2 10
fish 0 0 8
dog 4 0 2
fish 0 0 8
dog 4 0 2
使用DataFrame列作为权重。num_specimen_seen列中值较大的行 更可能被采样
>>> df.sample(n=2, weights='num_specimen_seen', random_state=1)
num_legs num_wings num_specimen_seen
falcon 2 2 10
fish 0 0 8