在创建聚合结果之前,将每个input.csv读入字典可能更有效。在
下面是一个读取每个文件并将列存储在字典中的解决方案,其中的键是Product_id。我假设每个Product_ID值都存在于每个文件中,并且包含头。我还假设除了产品标识之外,文件中没有重复的列import csv
from collections import defaultdict
entries = defaultdict(list)
files = ['names.csv', 'costs.csv', 'descriptions.csv']
headers = ['Product_ID']
for filename in files:
with open(filename, 'rU') as f: # Open each file in files.
reader = csv.reader(f) # Create a reader to iterate csv lines
heads = next(reader) # Grab first line (headers)
pk = heads.index(headers[0]) # Get the position of 'Product_ID' in
# the list of headers
# Add the rest of the headers to the list of collected columns (skip 'Product_ID')
headers.extend([x for i,x in enumerate(heads) if i != pk])
for row in reader: