【发布时间】:2020-01-09 18:36:51
【问题描述】:
我正在尝试根据两列值将 csv 拆分为多个文件。例如,
源文件:
Header1 Header2 Header3
Alpha energy 0.1
Alpha energy 0.34
Beta energy_imbalance 0.66
Beta energy 0.7
Beta energy 0.1
Gamma energy_imbalance 0.3
预期输出:
输出文件1:
Header1 Header2 Header3
Alpha energy 0.1
Alpha energy 0.34
输出文件2:
Header1 Header2 Header3
Beta energy_imbalance 0.66
输出文件3:
Header1 Header2 Header3
Beta energy 0.7
Beta energy 0.1
Outfile4:
Header1 Header2 Header3
Gamma energy_imbalance 0.3
以下是我开始的:
filein = open('test.csv')
csvin = csv.DictReader(filein)
outputs = {}
for row in csvin:
primaryValue = row['Header1']
secondaryValue = row['Header2']
if primaryValue not in outputs:
fileout = open('{}_{}.csv'.format(primaryValue,secondaryValue),'w')
dw = csv.DictWriter(fileout, fieldnames=csvin.fieldnames)
dw.writeheader()
outputs[primaryValue] = fileout, dw
outputs[primaryValue][1].writerow(row)
for fileout, _ in outputs.values():
fileout.close()
我能够根据 column = Header1 拆分文件,但我不确定如何进一步进行。
【问题讨论】:
-
使用
f'{primaryValue}_{secondaryValue}'作为字典键,而不仅仅是primaryValue。