首页 > 解决方案 > 从 CSV 中随机选择行并重复 X 次

问题描述

我是 Python 新手,并创建了一个脚本,该脚本从具有两列的 csv 中挑选出随机行。但它只从每一列中随机抽取一次。这是我的代码:

import csv
import random

with open('Sheettwo.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)

    chosen_row = random.choice(list(csv_reader))

    paraone = (chosen_row[1])
    paratwo = (chosen_row[2])

    print(f'{paraone}\n{paratwo}\n')

我需要重复此 X 次,因此(例如)随机选择 4 个值(每列两个)。我怎么做?

标签: pythonpython-3.xrandom

解决方案


更好的方法是首先将数据存储在列表中,然后从中选择值。

import csv
import random

with open('Sheettwo.csv', 'r') as csv_file:

    lines = [tuple(line) for line in csv.reader(csv_file)]


n = 4 #  number of row you want to pick elements from

chosen_rows = random.choices(lines, k=n) 
 # pick n rows in the list

chosen_values = [random.choice(row) for row in chosen_rows]
  # pick a value from each row

print('\n'.join(chosen_values))

我希望它会有用...


推荐阅读