如何逐行合并多个csv文件python
我希望代码能够逐行合并输出的csv文件。它将一行接一行地写第一行,然后一行接一行地写第二行如何逐行合并多个csv文件python,python,pandas,numpy,csv,Python,Pandas,Numpy,Csv,我希望代码能够逐行合并输出的csv文件。它将一行接一行地写第一行,然后一行接一行地写第二行 import numpy as np, pandas as pd, os, glob path = (r'E:\csvfile') all_files = glob.glob(path + "/*.csv") li = [] for filename in all_files: df = pd.read_csv(filename, index_col=False, header=0) l
import numpy as np, pandas as pd, os, glob
path = (r'E:\csvfile')
all_files = glob.glob(path + "/*.csv")
li = []
for filename in all_files:
df = pd.read_csv(filename, index_col=False, header=0)
li.append(df)
frame = pd.concat(li,axis=0,names=None)
frame.to_csv (r'E:\csvfile\exportC.csv', mode = 'w', index=False)
我用不同的参数尝试了较短的代码。>
import pandas as pd, glob
df = pd.concat(map(pd.read_csv, glob.glob(r'E:\csvfile/*.csv')),axis=0)
df.to_csv (r'E:\csvfile\exportC.csv',mode = 'w', index=False)
file1.csv
0, 10,12
0,11,12
1,15,12
文件2.csv
0, 2, 1
1,22, 1
3, 11, 1
文件3.csv
0, 4, 6
9, 14, 13
5, 6, 2
预期产出
0, 10,12
0, 2, 1
0, 4, 6
0,11,12
1,22, 1
9, 14, 13
1,15,12
3, 11, 1
5, 6, 2
从现在开始谢谢您。您可以先将三个单独的数据帧
df1
、df2
和df3
连接起来,然后使用排序索引
方法根据索引号重新组织数据帧:
import pandas as pd
df1=pd.read_csv(file1.csv)
df2=pd.read_csv(file2.csv)
df3=pd.read_csv(file3.csv)
df=pd.concat([df1, df2, df3], axis=0).sort_index()
这将返回:
0 1 2
0 0 10 12
0 0 2 1
0 0 4 6
1 0 11 12
1 1 22 1
1 9 14 13
2 1 15 12
2 3 11 1
2 5 6 2
您可以为每个CSV创建一个数据帧,并编写一个循环和追加行的函数。如果CSV很大,你可以分块阅读
while i < df_length:
df = df.append(df1.iloc[[i],:]).append(df2.iloc[i,:]).append(df3.iloc[i,:])
i += 1
而i
我怀疑预期输出中有错误。第二行不是应该是0,2,1
?非常感谢您的回复。它解决了我的问题,但它并没有按顺序写行,而是以一种混合的方式写。有什么解决办法吗?非常感谢您的回复。它解决了我的问题,但它并没有按顺序写行,而是以一种混合的方式写。有解决办法吗?