循环合并所有数据框

时间:2020-11-02 08:43:25

标签: python pandas dataframe

我在某个路径中有几个CSV文件。我想将它们全部加在一起,我用一个函数费力地做到了这一点,并将各个数组分配给了数据框。 是否可以在for循环中执行所有操作? 所以我不必做df1 = pd.read_csv(CSV_FILES[0]frames = [df1, df2, df3, df4]吗?

当我尝试循环读取for时,出现错误。

如何通过不引用单个数组CSV_FILES[0]而是循环执行所有操作来改进此代码?

PATH = ''
def find_csv(path):
    csv_files = []
    print("Looking for files at ", path)
    for file in Path(path).glob('*.csv'):
        csv_files.append(str(file)) 
    print("Found ", len(csv_files), " csv files")
    return csv_files

CSV_FILES = find_csv(PATH)


df1 = pd.read_csv(CSV_FILES[0])
df2 = pd.read_csv(CSV_FILES[1])
df3 = pd.read_csv(CSV_FILES[2])
df4 = pd.read_csv(CSV_FILES[3])

frames = [df1, df2, df3, df4]
df = pd.concat(frames)

1 个答案:

答案 0 :(得分:0)

您可以创建数据框列表,进行更改:

csv_files.append(str(file)) 

收件人:

csv_files.append(pd.read_csv(str(file)))

然后将它们聚在一起:

df = pd.concat(CSV_FILES)
相关问题