将随机化行作为新csv接收

2024-05-23 18:46:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我现在想要得到x行的随机样本(比如1000行)(最好是针对特定列(列“CG”(header=text))-如果这很困难,则应重新命名整行的值)

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

  1. 我如何修改它,使它能给出随机的行,而不是随机的值——这样它们总是包含来自同一列的内容
  2. 我如何让它创建一个新的csv,并将随机化的行数据作为示例

注意:我也试着让datatools运行并使用他们的csvrows工具,但是按照说明我无法让csvrow工具运行datatools

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))

Tags: 工具csv数据inimportlinerandomfile
1条回答
网友
1楼 · 发布于 2024-05-23 18:46:55

你考虑过使用^{}吗?它在学术界、数据科学界和工业界广泛用于处理csv/json文件和数据

下面是一个示例,它可以在两行代码中实现您想要的功能,而无需编写额外的代码

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

Pandas documentation for sample

相关问题 更多 >