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


Python Pandas DataFrame sample方法用法及代码示例


Pandas DataFrame.sample(~) 方法随机返回指定的行数或列数。请注意,返回的是一个新副本,即修改返回的DataFrame不会改变源DataFrame。

参数

1.n | int | optional

随机样本的大小。默认情况下,n=1

2. frac | float | optional

随机样本的相对大小。例如,frac=0.6 表示随机样本的大小为值总数的 60%。

警告

仅指定 nfrac - 不能同时指定两者。

3. replace | boolean | optional

是否允许从同一行采样。默认情况下,replace=False

4. weights | stringarray-like | optional

分配给项目的权重。权重高的项目更有可能被选择。如果权重之和不等于 1,则对它们进行归一化,使总和变为 1。默认情况下为 weights=None ,这意味着分配相等的权重。

5. random_state | intnumpy.random.RandomState | optional

用于生成随机样本的种子。这用于再现性 - 如果您想获得一致的结果,请指定此参数。

6. axis | intstring | optional

是否返回行或列:

说明

0"index"

将返回行。

1"columns"

将返回列。

默认情况下,axis=0

返回值

一个新的DataFrame,包含随机选择的行或列。

例子

考虑以下 DataFrame :

df = pd.DataFrame({"A":["a","b","c","d"],"B":["e","f","g","h"],"C":["i","j","k","l"]})
df



   A  B  C
0  a  e  i
1  b  f  j
2  c  g  k
3  d  h  l

基本用法

随机获取 2 行:

df.sample(n=2)



   A  B  C
3  d  h  l
0  a  e  i

指定压裂参数

要使样本大小为总行数的一半,请设置 frac=0.5

df.sample(frac=0.5)



   A  B  C
2  c  g  k
0  a  e  i

这里,总行数的 50% 是 2,所以这就是我们最终得到 2 行的原因。

指定替换参数

要允许选择相同的行,请设置 replace=True 。这意味着现在可能出现以下结果:

df.sample(n=2, replace=True)



   A  B  C
0  a  e  i
0  a  e  i

指定权重参数

默认情况下,所有行被选择的概率相同。我们可以通过设置 weights 参数来使某些行更有可能被选择,如下所示:

df.sample(n=1, weights=[0.7 ,0.1, 0.1, 0.1])



   A  B  C
0  a  e  i

在这里,0 行将在 70% 的时间内被选中,而其他行将分别在 10% 的时间内被选中。请注意,权重之和不必为 1;该方法会自动对权重进行归一化,使总和变为 1。

指定random_state参数

当您需要重现结果时,请设置 random_state 参数,如下所示:

df.sample(n=2, random_state=42)



   A  B  C
1  b  f  j
3  d  h  l

现在,无论您运行此方法多少次,结果都将始终相同。你可以把数字 42 给你的朋友,他们也会在他们的机器上得到相同的结果!

指定轴参数

默认情况下,行将随机返回:

df.sample(n=1)   # axis=0



   A  B  C
3  d  h  l

要获取列,请像这样设置axis=1

df.sample(n=1, axis=1)



   B
0  e
1  f
2  g
3  h

相关用法


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