Сделать CSV-файл из каждой строки - PullRequest
0 голосов
/ 14 октября 2019

У меня есть датафрейм с n столбцами. Одним из них является название города.

Я пытаюсь извлечь каждую строку (и) на основе названия города и распечатать каждую в новый файл CSV.

col1  col2    cityName

a       5     Madrid
s       10    NEWYORK
d       0     London
f       2     Berlin

Ответ:

первый CSV-файл:

col1  col2    cityName

a       5     Madrid

второй CSV-файл:

col1  col2    cityName
s       10    NEWYORK

Ответы [ 3 ]

1 голос
/ 14 октября 2019

Этот код будет перебирать любой DataFrame (если существует) и создавать новый CSV-файл (для каждой строки), содержащий заголовок столбца, а также строку, иначе, если DataFrame не существует, он ничего не сделает.

import pandas as pd
i=0
while True:
    try: 
        df.iloc[[i]].to_csv("filename.csv")
        i = i+1
    except: pass
0 голосов
/ 14 октября 2019

Вы можете сгруппировать строки по столбцу cityName, а затем экспортировать их в отдельные csv для каждой группы, например:

РЕДАКТИРОВАТЬ: добавить результаты сохранения в файлы CSV

РЕДАКТИРОВАТЬ: добавить zip все файлы

import zipfile
import pandas as pd

df = pd.DataFrame(
    data={'col1': ['a', 's', 'd', 'f', 'x'], 'col2': [5, 10, 0, 2, 4],
          'cityName': ['Madrid', 'NEWYORK', 'London', 'Berlin', 'Madrid']})

groupby = df.groupby('cityName')
out_zip = zipfile.ZipFile("58377674.zip", "w")

for n, g in groupby:
    print(n)
    csv = g.to_csv(index=False)
    print(csv)
    csv_filename = "{}.csv".format(n)
    with open(csv_filename, 'w') as out_file:
        out_file.write(csv)
    out_zip.write(csv_filename)
0 голосов
/ 14 октября 2019

Следующий код создаст файл CSV и напишет в нем строку. Вы можете перебирать этот код до последней записи, и каждый раз он будет создавать уникальный файл данных.

import csv
from datetime import datetime

for index, row in dataframe.iterrows():
    filename = datetime.now()
    filename = filename.strftime("%d-%m-%Y_%H:%M:%S")
    file = open('data_'+str(filename)+'.csv', 'w')
    w = csv.writer(file)
    w.writerow([row['col1'], row['col2'], row['cityName']])
    file.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...