pandas采样的实现方法

 更新时间:2024年12月31日 10:47:20   作者:frostjsy  
pandas提供了多种方法进行随机采样,包括指定数量、按比例、设置随机种子、有无放回抽样及按列和分层抽样,下面就来介绍一下,感兴趣的可以了解一下

在数据分析和处理过程中,常常需要对数据进行随机采样,以便获取具有代表性的小样本或进行数据拆分。pandas 提供了非常方便的方法来实现随机采样。

基本用法:DataFrame 的 sample 方法

pandas 的 DataFrame 提供了 sample 方法用于随机采样,下面说明其基本用法和常见参数:

示例数据

首先,创建一个示例 DataFrame:

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Hannah'],
    'age': [25, 30, 35, 40, 45, 50, 55, 60],
    'city': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia', 'San Antonio', 'San Diego']
}
df = pd.DataFrame(data)
print(df)

示例 1:随机抽取指定数量的行

可以使用 n 参数指定抽取的行数:

# 随机抽取 3 行数据
sampled_df = df.sample(n=3)

print(sampled_df)

示例 2:按比例随机抽样

可以使用 frac 参数指定抽样的比例,例如 frac=0.5 表示随机抽取 50% 的行数:

# 随机抽取 50% 的行
sampled_df = df.sample(frac=0.5)

print(sampled_df)

示例 3:随机抽样时指定随机种子

为了保证每次抽样结果相同,可以使用 random_state 参数指定随机种子:

# 随机抽取 3 行数据,并指定随机种子
sampled_df = df.sample(n=3, random_state=1)

print(sampled_df)

示例 4:按行或按列随机抽样

默认情况下,sample 是按行抽样(axis=0),也可以设置 axis=1 来按列进行抽样:

# 按列随机抽取 2 列
sampled_df = df.sample(n=2, axis=1)

print(sampled_df)

示例 5:返回是否放回抽样

默认情况下,sample 是不放回抽样,即一个样本只会被抽取一次。可以设置 replace=True 来进行有放回抽样:

# 进行有放回抽样,随机抽取 10 个样本
sampled_df = df.sample(n=10, replace=True, random_state=1)

print(sampled_df)

示例 6:按某列进行分层随机抽样

有时需要按某列的值进行分层随机抽样,可以使用 groupby 和 apply 方法结合 sample 来实现:

# 按 'city' 列进行分层随机抽样,每个城市随机抽取 1 行
sampled_df = df.groupby('city').apply(lambda x: x.sample(n=1, random_state=1)).reset_index(drop=True)

print(sampled_df)

总结

pandas 提供了丰富的参数和功能,让 sample 方法能够满足各种随机抽样的需求,包括指定抽样数量、按比例抽样、设置随机种子、有无放回抽样以及按列和分层抽样。这些功能在数据分析和处理过程中非常有用,有助于快速获取具有代表性的小样本进行分析。

到此这篇关于pandas采样的实现方法的文章就介绍到这了,更多相关pandas采样内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • TensorFlow实现简单的CNN的方法

    TensorFlow实现简单的CNN的方法

    这篇文章主要介绍了TensorFlow实现简单的CNN的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python中update()函数的使用方法

    python中update()函数的使用方法

    Python字典update()方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中,这篇文章主要给大家介绍了关于python中update()函数的使用方法,需要的朋友可以参考下
    2024-02-02
  • Python Opencv使用ann神经网络识别手写数字功能

    Python Opencv使用ann神经网络识别手写数字功能

    这篇文章主要介绍了opencv(python)使用ann神经网络识别手写数字,由于这里主要研究knn算法,为了图简单,直接使用Keras的mnist手写数字解析模块,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • python九九乘法表的实例

    python九九乘法表的实例

    下面小编就为大家带来一篇python九九乘法表的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Python运算符&=使用实例探究

    Python运算符&=使用实例探究

    这篇文章主要为大家介绍了Python运算符&=使用实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python PyQt5实战项目之文件拷贝器的具体实现详解

    Python PyQt5实战项目之文件拷贝器的具体实现详解

    PyQt5以一套Python模块的形式来实现功能。它包含了超过620个类,600个方法和函数。本篇文章手把手带你用PyQt5实现一个简单的文件拷贝器,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • Python字典高级用法深入分析讲解

    Python字典高级用法深入分析讲解

    字典作为Python的一个内置数据结构,和列表一样都是可变序列的,但是它是无序的,以键值对的方式存储数据。本文将详解一下Python中字典的高级使用,需要的可以参考一下
    2022-10-10
  • Python黑魔法Descriptor描述符的实例解析

    Python黑魔法Descriptor描述符的实例解析

    与迭代器和装饰器等一样,描述符也是Python编程中的一项高级技巧,这里我们就来讲解Python黑魔法Descriptor描述符的实例解析:
    2016-06-06
  • python3.3使用tkinter开发猜数字游戏示例

    python3.3使用tkinter开发猜数字游戏示例

    这篇文章主要介绍了python3.3使用tkinter开发猜数字游戏示例,需要的朋友可以参考下
    2014-03-03
  • Flask搭建虚拟环境并运行第一个flask程序

    Flask搭建虚拟环境并运行第一个flask程序

    这篇文章主要介绍了Flask搭建虚拟环境并运行第一个flask程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论