簡體   English   中英

將多個CSV文件中的列合並為一個文件,並使用for循環制作多個CSV文件

[英]Combine columns from several CSV files into a single file and making multiple CSV file with for loop

我有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文件加載到一個dateframe中。 (請參閱此處

接下來,通過遍歷各列並使用to_csv將各列保存到新的csv中。

確保使用' columns '參數將列傳遞給'to_csv'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM