python - 将for循环的输出写入python中的csv
问题描述
我正在打开一个名为的 csv Remarks_Drug.csv
,其中包含连续列中的产品名称和映射
文件名。我正在对产品列进行一些操作,以删除字符后的所有字符串内容+
。从+
字符中剥离字符串后,我将结果存储在一个名为product_patterns
.
现在我打开一个新的csv
,我想将 for 循环的输出写入两列,第一列包含 ,product_patterns
第二列包含对应的filenames
.
我现在得到的输出只是output csv
我正在寻找的最后一行。我认为我没有正确循环,以便每一行product_patterns
和文件名都附加到output csv
文件中。
有人可以帮我解决这个问题。
下面附上代码:
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()
#print('K---'+ product)
filename = row[1]
product_patterns = ', '.join([i.split("+")[0].strip() for i in product.split(",")])
#print(product_patterns, filename)
with open ('drug_output100.csv', 'a') as csvfile:
fieldnames = ['product_patterns', 'filename']
print(fieldnames)
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
print(writer)
#writer.writeheader()
writer.writerow({'product_patterns':product_patterns, 'filename':filename})
样本输入:
Film-coated tablet + TERIFLUNOMIDE, 2011-07-18 - Received approval letter_EN.txt
Film-coated tablet + VANDETANIB, 2013-12-14 RECD Eudralink_Caprelsa II-28 - RSI - 14.12.2017.txt
Solution for injection + MenQuadTT, 395_EU001930-PIP01-16_2016-02-22.txt
Solution for injection + INSULIN GLARGINE, 2017-11-4 Updated PR.txt
Solution for injection + INSULIN GLARGINE + LIXISENATIDE, 2017 12 12 Email Approval Texts - SA1006-.txt
解决方案
import csv
import pandas as pd
with open('Remarks_Drug.csv', newline='', encoding ='utf-8') as myFile:
reader = csv.reader(myFile)
mydrug = []
for row in reader:
product = row[0].lower()
#print('K---'+ product)
filename = row[1]
product_patterns = ', '.join([i.split("+")[0].strip() for i in product.split(",")])
mydrug.append([product_patterns, filename])
# print(mydrug)
df = pd.DataFrame(mydrug, columns=['product_patterns', 'filename'])
print(df)
df.to_csv('drug_output100.csv', sep=',', index=False)
这利用了pandas
库。如果您要处理大csv
文件,使用panda
s 将在性能和内存方面方便且高效。这只是上述问题的替代解决方案。
推荐阅读
- c# - 仅根据调用程序集编译我的程序的某些部分
- javascript - cartItem.innerHTML =" 这一行显示 Uncaught SyntaxError: Invalid or unexpected token
- image - 使用 Swift5 在 iOS 中裁剪、旋转、调整图像大小
- shell - Shellscript 评估命令与命令的差异:多个 $(uuidgen) 得到相同的结果
- python - 上下文处理器('AnonymousUser' 对象不可迭代)
- sql - 如何编写sql查询来得到这个结果
- android - 使正则表达式查找并替换“#”并避免替换“&#”
- javascript - npm 错误!代码 ENOENT npm 错误!系统调用重命名
- php - PHP fpm - ZEND_INI_PARSER_ENTRY 的值为 NULL
- database-design - DB 设计 - 具有异构元素的详细信息表