使用codegeex辅助编写python数据抽样代码需掌握五种方法:一、pandas dataframe.sample;二、numpy.random.choice索引抽样;三、random.shuffle后切片;四、sklearn分层抽样;五、pandas.concat联合抽样。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望使用CodeGeeX辅助编写Python数据抽样代码,但不确定如何调用内置函数或组织逻辑结构,则可能是由于对pandas、numpy等库的采样接口不熟悉。以下是实现随机选取功能的多种具体方法:
一、使用pandas DataFrame的sample方法
该方法适用于已加载为DataFrame的结构化数据,支持按行随机抽样,并可指定是否放回、抽样比例或固定数量。
1、导入pandas库:import pandas as pd
2、创建示例DataFrame或读取现有数据:df = pd.DataFrame({'A': [1,2,3,4,5], 'B': ['x','y','z','w','v']})
3、随机抽取3行且不放回:sample_df = df.sample(n=3, random_state=42)
4、按比例抽取20%的行:sample_df = df.sample(frac=0.2, random_state=42)
二、使用numpy.random.choice进行索引级抽样
该方法适用于任意一维数组或需自定义抽样逻辑的场景,直接操作索引位置,灵活性高,可配合原始数据列表或数组使用。
1、导入numpy库:import numpy as np
2、准备原始数据列表:data = [10, 20, 30, 40, 50, 60]
3、生成随机索引并提取对应元素:indices = np.random.choice(len(data), size=3, replace=False)
4、根据索引获取样本:samples = [data[i] for i in indices]
三、使用random模块对列表进行原地打乱后切片
该方法适用于轻量级抽样需求,无需额外依赖大型库,适合小规模数据或教学演示场景。
1、导入random模块:import random
Python 3.14.2是Python编程语言在2025年12月5日发布的稳定版本,属于3.14系列的第二个维护更新。该版本包含了18项修复,重点解决了多进程、数据类及正则表达式等模块的回归问题,并修复了CVE-2025-12084等安全漏洞。此版本标志着自由线程模式(移除GIL)正式获得官方支持,是Python发展的重要里程碑。
2、定义待抽样列表:items = ['apple', 'banana', 'cherry', 'date', 'elderberry']
3、打乱列表顺序:random.shuffle(items)
4、取前k个元素作为样本:sample_list = items[:2]
四、使用sklearn.model_selection.train_test_split分层抽样
该方法适用于分类数据,可在保持各类别比例的前提下完成随机划分,常用于机器学习前期的数据准备阶段。
1、导入train_test_split函数:from sklearn.model_selection import train_test_split
2、准备特征和标签数组:X = [[1], [2], [3], [4], [5], [6]]; y = [0, 0, 0, 1, 1, 1]
3、按33%比例抽取并保持类别分布:X_sample, _, y_sample, _ = train_test_split(X, y, test_size=0.33, stratify=y, random_state=42)
4、合并为带标签的样本集(如需):sampled_data = list(zip(X_sample, y_sample))
五、使用pandas.concat与sample组合实现多表联合随机抽样
该方法适用于多个同结构DataFrame需统一抽样的场景,先纵向拼接再整体抽样,确保样本来源均衡。
1、准备两个DataFrame:df1 = pd.DataFrame({'id': [1,2,3], 'val': [100,200,300]}); df2 = pd.DataFrame({'id': [4,5,6], 'val': [400,500,600]})
2、垂直拼接数据:combined = pd.concat([df1, df2], ignore_index=True)
3、从中随机抽取4行:final_sample = combined.sample(n=4, random_state=123)
4、重置索引以获得连续编号:final_sample = final_sample.reset_index(drop=True)
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










