私信  •  关注

Carlo Zanocco

Carlo Zanocco 最近创建的主题
Carlo Zanocco 最近回复了
7 年前
回复了 Carlo Zanocco 创建的主题 » 在python中将for循环的输出写入csv

我希望这是你的正确方法,如果不是,告诉我,我们检查。

import csv

with open('Remarks_Drug.csv') as myFile:
    reader = csv.reader(myFile)
    products_list = list()
    filenames_list = list()

    for row in reader:
        products_list.append(row[0].lower().split("+")[0].strip())
        filenames_list.append(row[1])

    for index, product in enumerate(products_list):
        with open ('drug_output100.csv', 'a') as csvfile:
            fieldnames = ['product_patterns', 'filename']
            print(fieldnames)
            writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
            print(writer)
            writer.writerow({'product_patterns':product, 'filename':filenames_list[index]})
  1. 打开 备注.csv 文件并创建两个列表,其中存储 行值按您的喜好详细说明。
  2. 在产品列表上迭代并枚举它,以便您有一个索引 在文件名列表中使用。
  3. 打开输出文件并将结果附加到其中。

你也可以使用 pandas 以更快速、更聪明的方式详细说明csv文件。

这里是 熊猫 解决方案:

import pandas as pd

def select_real_product(string_to_elaborate):
    return string_to_elaborate.split('+')[0].strip()

df = pd.read_csv("Remarks_Drug.csv", delimiter=',', names=("product", "filename"))

df['product'] = df['product'].apply(select_real_product)

df.to_csv("drug_output100.csv", sep=',', na_rep='empty',index_label=False, index=False)