Сохраните новый файл .tsv для каждой записи в файле .csv в Python - PullRequest
0 голосов
/ 22 ноября 2018

это мой первый вопрос, ожидающий ответа на многие другие ваши.Я хочу создать много новых файлов .tsv, по одному для каждой записи (строки) большого файла .csv.С тех пор я сделал в основном новый файл .txt, в котором все данные из файла .csv разделены табуляцией вместо запятой.Вот что я сделал:

with open('mycsv.csv','r', encoding="utf-8") as csvin, open('out.txt', 'w', encoding="utf-8") as tsvout:
    csvin = csv.reader(csvin)
    tsvout = csv.writer(tsvout, delimiter='\t')

    for row in csvin:
        tsvout.writerow(row)

Спасибо за вашу помощь.

Редактировать: Я забыл!Я также хочу назвать выходные файлы tsv как doc_i.tsv, где i - номер строки каждой записи в файле .csv.

1 Ответ

0 голосов
/ 22 ноября 2018

Ну, это один из способов сделать это, используя np.array_split :

import pandas as pd
import numpy as np

df = pd.read_csv('big_file.csv')
tsvs = np.array_split(df, df.shape[0])

for i, tsv in enumerate(tsvs):
    tsv.to_csv('{}.tsv'.format(i), sep='\t', index=False, header=False)

Обратите внимание, что это создаст файлы с именами 0.tsv, 1.tsv ..И вы можете изменить это в to_csv вызове.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...