如何读取多个csv文件并合并它们?

时间:2019-06-13 00:31:24

标签: python pandas csv dataframe

这些是我的csv文件,它们存在于特定目录中:

output0
output1
output3
output4

out0
out1
out2
out3

我应该将output0与out0合并,将output1与out1合并..

我只将output0与out0合并了,但是我没有找到一种方法来处理文件的其余部分

PS:这只是一个例子,我的目录中有100个csv文件

这是我的代码:

import pandas as pd
import time
a = pd.read_csv("C:/Users/AQ42770/Documents/merge/output0.csv")
b = pd.read_csv("C:/Users/AQ42770/Documents/merge/out0.csv")
merged = a.merge(b, on='Class')
merged.to_csv("output.csv", index=False)

time.sleep(60)
df = pd.read_csv("output.csv")
k=df.loc[~df.Class.duplicated(keep='last')]
k.to_csv("test1.csv", index=False, na_rep='NaN')

2 个答案:

答案 0 :(得分:2)

您可以使用for循环和字符串格式来创建两个变量str_astr_b。然后将这些变量读入pd.read_csv

类似的东西:

for i in range(number_of _files):
    str_a = "path/to/file%d.csv" % i
    str_b = "path/to/otherfile%d.csv" % i

    a = pd.read_csv(str_a)
    b = pd.read_csv(str_b)

答案 1 :(得分:1)

您可以使用glob获取CSV文件列表,将所有文件循环读取到DataFrames列表中,并连接结果列表的成员:

import glob
df = pd.concat(pd.read_csv(f) for f in glob.glob("*.csv"))