2014-05-18 72 views
2

我需要垂直合併來自Python中幾個CSV電子表格的數據。他們的結構是相同的,我只需要把一個表格的數據放在下面,因爲它們是年度調查的月份。我嘗試了幾種方法,我發現谷歌搜索,但我找不到一種方法做到這麼簡單:如何在Python中垂直合併多個csv文件?

import csv 

spreadsheets1 = open('0113_RE_fscom.csv','r') 
spreadsheets2 = open('0213_RE_fscom.csv','r') 
spreadsheets = spreadsheets1 + spreadsheets2 

with spreadsheet as csvfile: 
    sales = csv.reader(csvfile) 
    for row in sales: 
     print row 

在此先感謝。 R.

回答

2

看起來你只是忘了遍歷文件。試試這個代碼:

import csv 

spreadsheet_filenames = [ 
    '0113_RE_fscom.csv', 
    '0213_RE_fscom.csv', 
] 

for filename in spreadsheet_filenames: 
    with open(filename, 'r') as csvfile: 
     sales = csv.reader(csvfile) 
     for row in sales: 
      print row 
0

這個怎麼樣:

import csv 
from itertools import izip 

with open('0113_RE_fscom.csv', 'r') as f1, open('0113_RE_fscom.csv', 'r') as f2: 
    csv1 = csv.reader(f1, delimiter=',') 
    csv2 = csv.reader(f2, delimiter=',') 
    for line1, line2 in izip(csv1, csv2): 
     print line1 + line2 
0

這對大熊貓來說很簡單。

import pandas as pd 
f1 = pd.read_csv('0113_RE_fscom.csv', header=None) 
f2 = pd.read_csv('0213_RE_fscom.csv', header=None) 
merged = pd.concat(f1, f2) 
merged.to_csv('merged.csv', index=None, header=None) 

刪除header=None如果你的文件實際上是有一個頭。