如何在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
3 个回答
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
用pandas处理这个问题非常简单。
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
这一部分去掉。
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