我有14个CSV文件,每个文件有100列,我想做的是从每个文件中提取第一列,并将其复制到单个CSV文件中。我必须为每100列执行此操作(例如,下一步是将每个文件中的第二列放入csv文件)
我以前尝试过的是下面的代码,它非常适合提取一个列,但是我想把它放在一个循环中,这样我就可以一次得到100个文件。我该怎么做呢
import csv
import itertools as IT
filenames = ['Sul-v1.csv', 'Sul-v2.csv','Sul-v3.csv', 'Sul-v4.csv', 'Sul-v5.csv', 'Sul-v6.csv', 'Sul-v7.csv', 'Sul-v8.csv', 'Sul-v9.csv', 'Sul-v10.csv', 'Sul-v11.csv', 'Sul-v12.csv', 'Sul-v13.csv', 'Sul-v14.csv']
handles = [open(filename, 'rb') for filename in filenames]
readers = [csv.reader(f, delimiter=',') for f in handles]
with open('combined.csv', 'wb') as h:
writer = csv.writer(h, delimiter=',', lineterminator='\n', )
for rows in IT.izip_longest(*readers, fillvalue=['']*2):
combined_row = []
for row in rows:
row = row[:1] # select the columns you want
if len(row) == 1:
combined_row.extend(row)
else:
combined.extend(['']*2)
writer.writerow(combined_row)
for f in handles:
f.close()
提前谢谢
使用熊猫
首先,将所有csv文件加载到一个日期框中(见here)
接下来,通过在列上循环并使用to_csv将每个列保存到新的csv中
确保使用“columns”参数将列传递给“to_csv”
相关问题 更多 >
编程相关推荐