将多个CSV的列堆叠到主文件中

时间:2014-08-19 21:13:06

标签: python csv pandas

我正在尝试使用多个CSV并使用标头将列数据堆叠到一个文件中 对齐数据。标题并不总是正确的顺序,有些标题丢失,但文件之间存在匹配。

EG。

File 1:

Stuff   More_Stuff   Lots_stuff 
0       2             1
2       3             2 
4                     3  


File 2:     

Stuff   Lots_Stuff   More_stuff good_Stuff
6       4             3         1
8       5             4 
10


Master File

Stuff  More_stuff    Lots_Stuff  good_stuff
0       2             1          1
2       3             2
4       3             3
6       4             4
8                     5
10

csv都在文件夹中 - > /*.csv

1 个答案:

答案 0 :(得分:1)

您需要使用os.listdir或glob创建所有csv的列表,遍历列表并将每个csv读入数据帧,然后使用concat函数将它们全部合并到一个长数据帧中。 pandas.concat()具有标头识别功能,会自动为您调整标题。然后,您可以将数据帧输出到csv。

import pandas as pd
import glob

globbed_files = glob.glob("*.csv") #creates a list of all csv files

data = [] # pd.concat takes a list of dataframes as an agrument
for csv in globbed_files:
    frame = pd.read_csv(csv)
    data.append(frame)

bigframe = pd.concat(data, ignore_index=True) #dont want pandas to try an align row indexes
bigframe.to_csv("output.csv")