在python中使用单独的列将终端输出到csv

问题描述 投票:2回答:1

我的代码如下:

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

enter image description here

python loops csv for-loop export-to-csv
1个回答
0
投票

根据您可以使用的环境,使用更专用的程序来解决您的问题可能更实际。

特别是pandas package在你的情况下似乎很有用。然后你可以使用以下命令加载csv:

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

完成必要的操作后,您可以再次保存

df.to_csv(file_path)

这将为您节省许多在逐行解析时通常会出现的问题,并且还应该提高性能。如果你需要做一些数据操作,Pandas是一个非常好的学习包。

© www.soinside.com 2019 - 2024. All rights reserved.