我正在尝试使用多个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
答案 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")