Вывод терминала в CSV с отдельными столбцами в Python - PullRequest
0 голосов
/ 26 февраля 2019

мой код выглядит следующим образом:

import csv
with open('Remarks_Drug.csv', newline='', encoding ='utf-8') as myFile:
    reader = csv.reader(myFile)
    for row in reader:
        product = row[0].lower()
        filename = row[1]
        product_patterns = ', '.join([i.split("+")[0].strip() for i in product.split(",")])
        print(product_patterns, filename)

, который выводит, как показано ниже: (где вкладка с пленочным покрытием должна быть одним столбцом, а имя файла - другим столбцом)

film-coated tablet RECD outcome AUBAGIO IAIN-21 AoR.txt
solution for injection 093 Acceptance NO Safety profil.txt

Я хочу вывести это в CSV-файл с одним столбцом как product_patterns, а другой как имя файла.Я написал код ниже, но добавляется только последний ряд.Может кто-нибудь, пожалуйста, помогите мне с циклом здесь.Код, который я написал:

with open ('drug_output.csv', 'a') as csvfile:
    fieldnames = ['product_patterns', 'filename']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writerow({'product_patterns':product_patterns, 'filename':filename})

введите описание изображения здесь

1 Ответ

0 голосов
/ 26 февраля 2019

В зависимости от среды, которую вы можете использовать, может оказаться более практичным использование более специализированных программ для решения вашей проблемы.

Особенно пакет pandas кажется полезным в вашем случае.Затем вы можете загрузить CSV, используя:

import pandas as pd
df=pd.read_csv(file_path)

После выполнения необходимых манипуляций, вы можете сохранить его снова с помощью

df.to_csv(file_path)

Это избавит вас от многих проблем, которые обычно возникают, когдаРазбор за строкой, и это также должно немного повысить производительность.Pandas - это довольно хороший пакет для обучения, если вам нужно что-то манипулировать данными.

...