2017-09-23 84 views

回答

2

pandas可以很容易地只提取某些列寫出來給你一個新的CSV文件:

import pandas as pd 

data = pd.read_csv('input.csv', usecols=[1, 3], index_col=1) 
data.to_csv('output.csv') 

如果你想從多個文件相同的兩列提取到一個單一的輸出,你可以做以下:

import pandas as pd 
import glob 

combined_data = pd.DataFrame() 

for csv_file in glob.glob('*.csv'): 
    data = pd.read_csv(csv_file, usecols=[1, 3], index_col=1, skiprows=1, header=None, names=['Col1', 'Col2']) 
    combined_data = combined_data.append(data) 

combined_data.to_csv('output.csv') 

這可能需要調整,具體取決於您的文件是否有標題和相同的列名稱。


要提取的所有文件的標題(不加載整個文件),你可以簡單地使用CSV庫如下:

import csv 
import glob 

with open('headers.csv', 'w', newline='') as f_headers: 
    csv_headers = csv.writer(f_headers) 

    for csv_file in glob.glob('input*.csv'): 
     with open(csv_file, 'r', newline='') as f_csv: 
      csv_headers.writerow([csv_file] + next(csv.reader(f_csv))) 

這也把文件名作爲第在每一行上輸入。

+0

謝謝,但我想列名稱,這也有助於我的其他要求。 –

+0

因此,您試圖創建一個包含500個文件中所有標題行的CSV文件? –

+0

我只想知道所有500個csv文件中存在的列 –