简体   繁体   中英

Concatenate csv files in python by ascending order of filenames

I need to concatenate csv files with same column headers in python. The csv files with the following filenames should concatenate in order as shown below(ascending order of filename):

AB201602.csv
AB201603.csv
AB201604.csv
AB201605.csv
AB201606.csv
AB201607.csv
AB201608.csv
AB201610.csv
AB201612.csv

I would like to keep the column headers only from first file. Any idea?

I tried to use the below code and it combined the csv file by random filenames and truncated half of the column header name. thanks

csvfiles = glob.glob('/home/c/*.csv')
wf = csv.writer(open('/home/c/output.csv','wb'),delimiter = ',')

for files in csvfiles:
    rd = csv.reader(open(files,'r'),delimiter = ',')
    rd.next()
    for row in rd:
        print(row)
        wf.writerow(row)

Using @Gokul comment and pandas.

import pandas as pd
import glob

csvfiles = sorted(glob.glob('/home/c/*.csv'))

df = pd.DataFrame()
for files in csvfiles:
    df = df.append(pd.read_csv(files))

df.to_csv('newfile.csv')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM