Pandas DataFrame.sample() 随机抽样详解与实战

许南星
许南星
发布时间:2026-10-15| 5人浏览过
原创

本文详细介绍Pandas中DataFrame.sample()函数的使用方法,涵盖n、frac、replace、weights、random_state等核心参数的配置。通过具体代码示例演示如何按行数、比例或权重进行随机抽样,并解析axis方向控制及结果复现技巧,帮助开发者高效实现数据子集提取。

Pandas随机抽样基础

随机抽样是统计学中广泛应用的技巧,旨在从大规模数据集中快速构建具有代表性的分析模型。在Python的Pandas库中,实现这一功能的核心工具是sample()函数。

sample函数语法与参数详解

调用该函数时,需遵循特定的语法结构,具体格式如下所示:

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

各参数的具体含义与功能对照下表:

参数名称参数说明
n表示要抽取的行数。
frac表示抽取的比例,比如 frac=0.5,代表抽取总体数据的50%。
replace布尔值参数,表示是否以有放回抽样的方式进行选择,默认为 False,取出数据后不再放回。
weights可选参数,代表每个样本的权重值,参数值是字符串或者数组。
random_state可选参数,控制随机状态,默认为 None,表示随机数据不会重复;若为 1 表示会取得重复数据。
axis表示在哪个方向上抽取数据(axis=1 表示列/axis=0 表示行)。
该函数返回与数据集类型相同的新对象,相当于 numpy.random.choice()。实例如下: 
import pandas as pd  
dict = {'name':["Jack", "Tom", "Helen", "John"],'age': [28, 39, 34, 36],'score':[98,92,91,89]} 
info = pd.DataFrame(dict)
#默认随机选择两行
info.sample(n=2)
#随机选择两列
info.sample(n=2,axis=1)

执行上述代码后的输出结果如下:

name age score 3 John 36 89 0 Jack 28 98

score name 0 98 Jack 1 92 Tom 2 91 Helen 3 89 John

多场景抽样实战示例

接下来通过另一组数据进一步演示抽样效果:

import pandas as pd
info = pd.DataFrame({'data1': [2, 6, 8, 0], 'data2': [2, 5, 0, 8], 'data3': [12, 2, 1, 8]}, index=['John', 'Parker', 'Smith', 'William'])
info
#随机抽取3个数据
info['data1'].sample(n=3)
#总体的50%
info.sample(frac=0.5, replace=True)
#data3序列为权重值,并且允许重复数据出现
info.sample(n=2, weights='data3', random_state=1)

对应的输出结果如下:

随机选择3行数据: William 0 Smith 8 Parker 6 Name: data1, dtype: int64

data1 data2 data3 John 2 2 12 William 0 8 8

data1 data2 data3 John 2 2 12 William 0 8 8

以上就是关于Pandas中sample函数进行随机抽样的完整介绍。如需了解更多相关技术细节,建议查阅本站历史文章或继续浏览后续内容,感谢支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。