将随机化的行作为新csv接收



我对python很陌生(主要是出于学术原因想使用它(,所以请回答我的问题!

我已经通过他们的开发学术账户收集了推特数据,但数量相当大,所以我想创建一个随机样本。我已经有json和csv格式的数据了。

我现在想得到一个x行(假设为1000行(的随机样本(最好是针对特定列(列"CG"(标题=文本((-如果这很难,则应该重新计算整行的值(

我发现的是这个代码,它给出了随机值。

  1. 我如何修改它,使其显示随机化的行,而不是随机值,这样它们就总是包含同一列的内容
  2. 我怎样才能用随机化的行数据作为样本创建一个新的csv

p.s.:我也试图让datatools运行并使用它们的csvrows工具,然而,尽管按照说明我无法运行csvrow工具。数据工具

MWE:

import csv
import random
with open('test.csv', 'r') as csv_file:
lines = [tuple(line) for line in csv.reader(csv_file)]

n = 1000 #  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))

您是否考虑过使用Pandas?它在学术界、数据科学界和工业界被广泛用于处理csv/json文件和数据。

这里有一个例子,它可以在2行代码中完成您想要的操作,而不需要编写额外的代码。

import pandas as pd
# read csv
df = pd.read_csv(path_to_your_file)
df.sample(frac=0.5, random_state=12345)

样品的Pandas文件

相关内容

  • 没有找到相关文章

最新更新