当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.DataFrame.sample用法及代码示例


用法:

DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, ignore_index=False)

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

您可以使用random_state 来获得重现性。

参数

n整数,可选

从轴返回的项目数。不能与 frac 一起使用。如果 frac = 无,则默认 = 1。

frac浮点数,可选

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

replace布尔值,默认为 False

允许或禁止对同一行多次采样。

weightsstr 或ndarray-like,可选

默认“无”导致相等的概率权重。如果传递一个系列,将与索引上的目标对象对齐。采样对象中未找到的权重索引值将被忽略,采样对象中未找到权重的索引值将分配为零权重。如果在 DataFrame 上调用,将在轴 = 0 时接受列的名称。除非权重是一个系列,否则权重必须与被采样的轴的长度相同。如果权重总和不为 1,则它们将被归一化为总和为 1。权重列中的缺失值将被视为零。不允许无限值。

random_stateint,array-like,BitGenerator,np.random.RandomState,np.random.Generator,可选

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

axis{0 或‘index’,1 或‘columns’,无},默认无

要采样的轴。接受轴号或名称。默认是给定数据类型的统计轴(系列和数据帧为 0)。

ignore_index布尔值,默认为 False

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

返回

Series或DataFrame

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

注意

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

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 带替换的上采样示例:请注意,replace 参数必须为 True,以便 frac 参数 > 1。

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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.sample。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。