将多个文件夹中的csv文件追加到一个数据帧中

2024-09-30 00:28:06 发布

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

我在多个子文件夹中有名为“toyexample”的csv文件。我想在所有子文件夹中追加所有名为toyexample的csv文件。 路径文件夹如下所示:

C:/Users/xxx/Dropbox/College/Project1/2005Q1/
C:/Users/xxx/Dropbox/College/Project1/2005Q2/
.....
.....
C:/Users/xxx/Dropbox/College/Project1/2015Q3/
C:/Users/xxx/Dropbox/College/Project1/2015Q4/

因此,路径子文件夹的范围从2005Q1到2015Q4。 每个子文件夹都有许多csv文件,但我只想提取名为toyexample的文件

我正在尝试以下方法:

import pandas as pd
import os

path = ["subfolder1", "folder2", ....."subfolder44"]
appended_file = []
subpaths = os.listdir(path)

for pa in subpaths:
    df = pd.read_csv("toyexample")
    appended_file.append(df)

我想知道如何自动化从这么多不同的目录中读取文件的过程,而不是自己手动输入。我还需要帮助读取文件(可能是使用os.path_join())并将它们附加到一个数据帧df


Tags: 文件csvpathimport路径文件夹dfos
2条回答

使用globrecursive=True查找文件树中名为toyexample.csv的所有文件的路径

glob.glob("**/toyexample.csv", recursive=True)

将为每个toyexample.csv提供一个从当前工作目录开始的路径列表,然后您可以处理这些路径

在用户ChuHo的帮助下,我能够解决以下问题:

import glob
import os 
import pandas as pd

paths = glob.glob("CC:/Users/xxx/Dropbox/College/Project1/**/toyexample.csv", recursive=True)

appended_file = []
for i in paths:
    df = pd.read_csv(i)
    appended_file.append(df)
    combined=pd.concat(appended_file, axis=0, ignore_index=True, sort=False)

相关问题 更多 >

    热门问题