我对python很陌生(主要是出于学术原因想使用它(,所以请回答我的问题!
我已经通过他们的开发学术账户收集了推特数据,但数量相当大,所以我想创建一个随机样本。我已经有json和csv格式的数据了。
我现在想得到一个x行(假设为1000行(的随机样本(最好是针对特定列(列"CG"(标题=文本((-如果这很难,则应该重新计算整行的值(
我发现的是这个代码,它给出了随机值。
- 我如何修改它,使其显示随机化的行,而不是随机值,这样它们就总是包含同一列的内容
- 我怎样才能用随机化的行数据作为样本创建一个新的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文件