You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从CSV文件中获取随机行并返回对应行索引?

CSV随机选取行并获取对应索引实现方案(仅使用标准库csv、random)

实现逻辑

  • 一次性读取CSV所有行存入列表,利用列表的下标对应原始行的索引位置
  • 调用random库的无重复随机采样方法生成目标索引
  • 关联索引与对应行内容输出
  • 兼容带表头/不带表头的CSV格式

可直接运行的代码示例

import csv
import random

# 自定义配置项
csv_path = "你的目标文件路径.csv"
pick_num = 3  # 需要随机选取的行数
csv_has_header = True  # 你的CSV文件第一行是否为表头

# 读取CSV全量内容
with open(csv_path, "r", encoding="utf-8") as f:
    csv_reader = csv.reader(f)
    all_rows = list(csv_reader)

# 区分表头与数据行
data_start_idx = 1 if csv_has_header else 0
data_rows = all_rows[data_start_idx:]

# 校验选取数量合法性
if pick_num > len(data_rows):
    raise Exception(f"选取行数不能超过CSV总数据行数,当前总数据行数为{len(data_rows)}")

# 生成无重复的随机数据行索引
random_indexes = random.sample(range(len(data_rows)), pick_num)

# 打印结果
for idx in random_indexes:
    # 如需原始文件物理行号(第一行计数为1)可使用 original_line = idx + data_start_idx + 1
    # 如需数据行在数据集中的下标(从0开始)可直接使用 idx
    print(f"对应索引:{idx},行内容:{data_rows[idx]}")

关键说明

  • 无重复选取使用random.sample()方法,如果业务允许重复选取同一条数据,可以替换为random.choices(range(len(data_rows)), k=pick_num)
  • 索引计数规则可根据作业要求调整,默认提供数据下标、原始文件物理行号两种计算方式
  • 若CSV使用制表符等特殊分隔符,可在csv.reader()中传入delimiter="\t"参数适配

内容的提问来源于stack exchange,提问作者ARTICAT18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:06:04