【问题标题】:Append csv files in multiple folders into one dataframe将多个文件夹中的 csv 文件附加到一个数据框中
【发布时间】:2020-12-09 19:24:50
【问题描述】:

我在多个子文件夹中有名为“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

【问题讨论】:

    标签: python python-3.x pandas csv


    【解决方案1】:

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

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

    将为您提供从当前工作目录开始的每个toyexample.csv 的路径列表,然后您可以对其进行处理。

    【讨论】:

      【解决方案2】:

      在用户 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)
      

      【讨论】:

        猜你喜欢
        • 2019-02-16
        • 1970-01-01
        • 2021-10-21
        • 1970-01-01
        • 2014-02-26
        • 2019-11-08
        • 2018-05-09
        • 1970-01-01
        • 2014-03-29
        相关资源
        最近更新 更多