pandas.Series.sample#

Series.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, ignore_index=False)[源代码]#

从对象的轴中返回随机样本。

您可以使用 random_state 来确保结果的可复现性。

Parameters:
nint, optional

返回轴上项目的数量。不能与 frac 一起使用。如果 frac 为 None,则默认为 1。

fracfloat,可选

要返回的轴项目的分数。不能与 n 一起使用。

replacebool,默认 False

允许或禁止同一行被抽样多次。

weightsstr 或 ndarray-like,可选

默认为“None”,表示等概率加权。如果传递 Series,则将根据索引与目标对象对齐。在抽样对象中未找到索引的权重索引将被忽略,在权重中未找到的抽样对象索引将被赋予零权重。如果作用于 DataFrame,当 axis = 0 时,将接受列名。除非权重是 Series,否则权重必须与正在抽样的轴长度相同。如果权重不求和为 1,则会对其进行归一化,使其求和为 1。缺失的权重将被视为零。不允许无限值。

random_stateint, array-like, BitGenerator, np.random.RandomState, np.random.Generator, optional

如果是 int、array-like 或 BitGenerator,则为随机数生成器的种子。如果是 np.random.RandomState 或 np.random.Generator,则按给定的使用。

在 1.4.0 版本发生变更: 现在接受 np.random.Generator 对象

axis{0 或 ‘index’, 1 或 ‘columns’, None}, default None

要抽样的轴。接受轴编号或名称。默认为给定数据类型的统计轴。对于 Series,此参数未使用,默认为 None

ignore_indexbool,默认 False

如果为 True,则生成的索引将标记为 0, 1, …, n - 1。

在 1.3.0 版本加入.

Returns:
Series 或 DataFrame

与调用者类型相同的新对象,其中包含从调用者对象中随机抽样的 n 个项目。

参见

DataFrameGroupBy.sample

从 DataFrame 对象的每个组生成随机样本。

SeriesGroupBy.sample

从 Series 对象的每个组生成随机样本。

numpy.random.choice

从给定的 1-D numpy 数组生成随机样本。

Notes

如果 frac > 1,则 replacement 应设置为 True

Examples

>>> 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

Series df['num_legs'] 中提取 3 个随机元素:请注意,我们使用 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

DataFrame 进行有放回的超额抽样:请注意,对于 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