导入多个嵌套的csv文件并拼接为一个DataFram

2024-04-26 09:16:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图读取多个CSV文件,它们具有相同的结构(列名)并且位于多个文件夹中,我的主要目的是将这些文件连接到一个panda数据帧中。 请在下面找到附件文件夹的位置分布文件,因此每个文件夹包含5个CSV文件。 是否有任何预定义的函数或smth可以帮助??在

enter image description here

enter image description here


Tags: 文件csv数据函数目的文件夹附件结构
3条回答

您可以使用os.walk()来迭代目录树(example)中的文件。pd.read_csv()将把单个文件读入数据帧。pd.concat(df_list)将把df峈list中的所有数据帧连接在一起。在

我不相信有一种方法能将以上所有的方法结合起来以方便您。在

使用os.walk()pd.concat()

import os
import pandas as pd
outdir = [YOUR_INITIAL_PATH]
df_final = pd.DataFrame(columns=['column1', 'column2', 'columnN']) # creates an empty df with the desired structure
for root, dirs, filenames in os.walk(outdir):
    for f in filenames:
        if f.endswith('.csv'):
            df_temp = pd.read_csv(root + '\\' + f)
            df_final = pd.concat([df_final, df_temp])

您可以使用glob.glob('*.csv')来查找所有csv,然后对它们进行concat。在

import glob
import pandas as pd

csv_paths = glob.glob('*.csv')
dfs = [pd.read_csv(path) for path in csv_paths]
df = pd.concat(dfs)

相关问题 更多 >