【Pandas】pandas Series sample

news/2025/2/22 6:18:28

Pandas2.2 Series

Computations descriptive stats

方法描述
Series.align(other[, join, axis, level, …])用于将两个 Series 对齐,使其具有相同的索引
Series.case_when(caselist)用于根据条件列表对 Series 中的元素进行条件判断并返回相应的值
Series.drop([labels, axis, index, columns, …])用于从 Series 中删除指定的行或列(对于 Series 来说,通常是删除行)
Series.droplevel(level[, axis])用于从多层索引(MultiIndex)的 Series 中删除指定的索引层级
Series.drop_duplicates(*[, keep, inplace, …])用于从 Series 中删除重复的值
Series.duplicated([keep])用于检测 Series 中的重复值
Series.equals(other)用于比较两个 Series 对象是否完全相等的方法
Series.first(offset)用于根据日期偏移量(offset)选择 Series 中时间序列数据的初始部分
Series.head([n])用于返回 Series 的前 n 个元素
Series.idxmax([axis, skipna])用于返回 Series 中最大值的索引
Series.idxmin([axis, skipna])用于返回 Series 中最小值的索引
Series.isin(values)用于检查 Series 中的每个元素是否存在于给定的值集合 values
Series.last(offset)用于根据日期偏移量(offset)选择 Series 中时间序列数据的末尾部分
Series.reindex([index, axis, method, copy, …])用于重新索引 Series 对象的方法
Series.reindex_like(other[, method, copy, …])用于将 Series 对象重新索引以匹配另一个 SeriesDataFrame 的索引的方法
Series.rename([index, axis, copy, inplace, …])用于重命名 Series 对象的索引或轴标签的方法
Series.rename_axis([mapper, index, axis, …])用于为 Series 的索引轴(index)或列轴(columns,对于 Series 通常不适用)设置名称
Series.reset_index([level, drop, name, …])用于将 Series 的索引重置为默认整数索引的方法
Series.sample([n, frac, replace, weights, …])用于从 Series 中随机抽取样本的方法

pandasSeriessample_26">pandas.Series.sample

pandas.Series.sample 是一个用于从 Series 中随机抽取样本的方法。它允许用户根据指定的数量或比例进行抽样,并提供了多种抽样选项。以下是该方法的参数说明:

  • n: 抽取的样本数量。如果未提供,则必须提供 frac
  • frac: 抽取的样本占总数据的比例(0 到 1 之间)。如果未提供,则必须提供 n
  • replace: 是否允许重复抽样,默认为 False(不重复)。
  • weights: 抽样权重,可以是与 Series 长度相同的数组或索引标签。默认为 None(等概率抽样)。
  • random_state: 随机数生成器种子,确保结果可复现,默认为 None。
  • axis: 指定抽样的轴,默认为 0(行),对于 Series 可忽略。
  • ignore_index: 如果为 True,则重置返回对象的索引,默认为 False。
示例及结果
示例 1:基本用法(按数量抽样)
python">import pandas as pd

# 创建一个简单的 Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])

print("原始 Series:")
print(s)

# 抽取 3 个样本
s_sampled = s.sample(n=3)

print("\n抽取 3 个样本后的 Series:")
print(s_sampled)
输出结果
原始 Series:
a    1
b    2
c    3
d    4
e    5
dtype: int64

抽取 3 个样本后的 Series:
b    2
a    1
e    5
dtype: int64

在这个例子中,我们使用 sample 方法从 Series 中随机抽取了 3 个样本。

示例 2:按比例抽样
python"># 按 40% 的比例抽样
s_sampled_frac = s.sample(frac=0.4, random_state=1)

print("\n按 40% 比例抽样后的 Series:")
print(s_sampled_frac)
输出结果
按 40% 比例抽样后的 Series:
c    3
b    2
dtype: int64

在这个例子中,我们使用 frac=0.4 来按 40% 的比例抽样,并通过设置 random_state=1 确保结果可复现。

示例 3:允许重复抽样
python"># 允许重复抽样并抽取 5 个样本
s_sampled_replace = s.sample(n=5, replace=True, random_state=1)

print("\n允许重复抽样并抽取 5 个样本后的 Series:")
print(s_sampled_replace)
输出结果
允许重复抽样并抽取 5 个样本后的 Series:
d    4
e    5
a    1
b    2
d    4
dtype: int64

在这个例子中,我们通过设置 replace=True 允许重复抽样,并抽取了 5 个样本。

示例 4:使用权重抽样
python"># 使用权重进行抽样
weights = [0.1, 0.2, 0.3, 0.2, 0.2]
s_sampled_weights = s.sample(n=3, weights=weights, random_state=1)

print("\n使用权重抽样后的 Series:")
print(s_sampled_weights)
输出结果
使用权重抽样后的 Series:
c    3
d    4
a    1
dtype: int64

在这个例子中,我们使用 weights 参数指定了每个元素的抽样权重,使得某些元素被抽中的概率更高。

示例 5:重置索引
python"># 抽样并重置索引
s_sampled_reset_index = s.sample(n=3, ignore_index=True)

print("\n抽样并重置索引后的 Series:")
print(s_sampled_reset_index)
输出结果
抽样并重置索引后的 Series:
0    4
1    2
2    5
dtype: int64

在这个例子中,我们通过设置 ignore_index=True 来重置返回对象的索引。

通过这些示例,您可以更好地理解如何使用 pandas.Series.sample 方法来从 Series 中随机抽取样本。


http://www.niftyadmin.cn/n/5861768.html

相关文章

MySQL 插入更新语句(insert…on duplicate key update语句 )

我们日常在使用 insert into 语句向表中插入数据时,一定遇到过主键或唯一索引冲突的情况,当遇到这种情况时,MySQL默认的反应是报错并停止执行后续的语句,为了避免这种情况,你有3种选择: 使用insert ignore…

【中间件开发】kafka使用场景与设计原理

文章目录 前言一、MessageQueue1.1 定义1.2 使用消息队列的场景1.2.1 异步处理1.2.2 流量控制1.2.3 服务解耦1.2.4 发布订阅1.2.5 高并发缓冲1.3 基本概念和原理1.3.1 点对点消息队列模型 -- 线程池1.3.2 发布订阅消息模型-Topic --上课通知1.3.3 消息的ACK确认机制 二、Kafka2…

卷积与动态特征选择:重塑YOLOv8的多尺度目标检测能力

文章目录 1. YOLOv8的网络结构概述2. 添加注意力机制2.1 为什么添加注意力机制?2.2 如何将注意力机制集成到YOLOv8中?2.3 效果分析 3. C2f模块的集成3.1 C2f模块简介3.2 如何在YOLOv8中集成C2f模块?3.3 效果分析 4. 卷积操作的优化4.1 卷积操…

ABAP数据库表的增改查

数据表的增改查 接到一个任务,是对数据库表的增改查,增和查现在已经比较熟练了,关键是改,还有一个要求是要求系统能自动更新修改人和修改日期以及时间。 找到数据库表,新增这三个字段 这里另提一句,一般数…

【C/C++】合并两个有序链表 (leetcode T21)

核心考点预览:链表 (双指针) 技巧:虚拟头结点 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入输出示例1l1 [1,2,4], l2 [1…

3D全景沉浸式看车:虚拟现实重构汽车消费新体验

在传统的汽车消费模式中,消费者往往需要亲自前往展厅,花费大量时间和精力去挑选心仪的车型。这一过程不仅成本高,而且信息的透明度也常常受到质疑。面对琳琅满目的车型,消费者往往难以在短时间内做出决策,而车企则面临…

windows上vscode cmake工程搭建

安装vscode插件: 1.按装fastc(主要是安装MinGW\mingw64比较方便) 2.安装C,cmake,cmake tools插件 3.准备工作完成之后,按F1,选择cmake:Quick Start就可以创建一个cmake工程。 4.设置Cmake: G…

每日一题——打家劫舍

打家劫舍(一)与打家劫舍(二)动态规划解法详解 打家劫舍(一)问题描述示例解题思路动态规划 代码实现复杂度分析 打家劫舍(二)问题描述示例解题思路环形问题的拆分 代码实现复杂度分析…