mars.dataframe.Series.sample#

Series.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, always_multinomial=False)#

从对象的一个轴返回一个随机样本的项目。

您可以使用 random_state 以确保结果可重复。

Parameters
  • n (int, 可选) – 从轴上返回的项目数量。不能与 frac 一起使用。默认值 = 1 如果 frac = None。

  • frac (float, 可选) – 返回轴项的分数。不能与 n 一起使用。

  • replace (bool, default False) – 允许或不允许对同一行进行多次采样。

  • weights (strndarray-like, 可选) – 默认‘None’将导致等概率加权。 如果传入一个Series,将根据索引与目标对象对齐。 在weights中的索引值如果在采样对象中未找到,将被忽略, 而在采样对象中不在weights中的索引值将被分配为零权重。 如果在DataFrame上调用,将接受列名 当轴 = 0时。 除非权重是一个Series,权重的长度必须与被采样的轴相同。 如果权重的总和不等于1,它们将被归一化为总和为1。 权重列中的缺失值将被视为零。 不允许无限值。

  • random_state (int, array-like, BitGenerator, np.random.RandomState, optional) – 如果是int、array-like或BitGenerator(NumPy>=1.17),则为随机数生成器的种子。如果是np.random.RandomState,则用作numpy RandomState对象。

  • axis ({0‘index’, 1‘columns’, None}, 默认是 None) – 进行采样的轴。接受轴的数字或名称。默认是给定数据类型的统计轴(对于 Series 和 DataFrames 为 0)。

  • always_multinomial (bool, default False) – 如果为 True,则始终将数据块之间的样本计数分布视为多项分布。当数据量庞大时,这将加速采样,但当实例数量不大时,可能会影响样本的随机性。

Returns

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

Return type

序列数据框

另请参阅

DataFrameGroupBy.sample

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

SeriesGroupBy.sample

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

numpy.random.choice

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

备注

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

示例

>>> import mars.dataframe as md
>>> df = md.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.execute()
        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).execute()
fish      0
spider    8
falcon    2
Name: num_legs, dtype: int64

随机50%的样本来自于 DataFrame,带替换:

>>> df.sample(frac=0.5, replace=True, random_state=1).execute()
      num_legs  num_wings  num_specimen_seen
dog          4          0                  2
fish         0          0                  8

带替代的DataFrame的上采样示例: 请注意replace参数必须为True,以使frac参数 > 1。

>>> df.sample(frac=2, replace=True, random_state=1).execute()
        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).execute()
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
fish           0          0                  8