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


Python pandas.core.groupby.DataFrameGroupBy.sample用法及代码示例


用法:

DataFrameGroupBy.sample(n=None, frac=None, replace=False, weights=None, random_state=None)

从每个组中返回随机项目样本。

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

参数

n整数,可选

每个组要返回的项目数。不能与 frac 一起使用,并且不能大于最小组,除非 replace 为 True。如果frac 为无,则默认值为 1。

frac浮点数,可选

要退回的项目的一部分。不能与 n 一起使用。

replace布尔值,默认为 False

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

weightslist-like,可选

默认无导致相等的概率加权。如果传递了list-like,则值必须与底层 DataFrame 或 Series 对象具有相同的长度,并且将在每个组内标准化后用作采样概率。值必须是非负的,每组中至少有一个正元素。

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

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

返回

Series或DataFrame

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

例子

>>> df = pd.DataFrame(
...     {"a":["red"] * 2 + ["blue"] * 2 + ["black"] * 2, "b":range(6)}
... )
>>> df
       a  b
0    red  0
1    red  1
2   blue  2
3   blue  3
4  black  4
5  black  5

为 a 列中的每个不同值随机选择一行。 random_state 参数可用于保证重现性:

>>> df.groupby("a").sample(n=1, random_state=1)
       a  b
4  black  4
2   blue  2
1    red  1

设置 frac 以采样固定比例而不是计数:

>>> df.groupby("a")["b"].sample(frac=0.5, random_state=2)
5    5
2    2
0    0
Name:b, dtype:int64

通过设置权重控制组内的样本概率:

>>> df.groupby("a").sample(
...     n=1,
...     weights=[1, 1, 1, 0, 0, 1],
...     random_state=1,
... )
       a  b
5  black  5
2   blue  2
0    red  0

相关用法


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