将多个CSV文件从多个文件读入pandas DataFrame

时间:2015-09-02 21:09:27

标签: python csv pandas

我想查看同一目录中不同文件夹中包含的不同csv文件。我的文件夹在我的工作目录中。我的文件夹名为:

csv1.csv, csv2.csv

每个人的csv都有相同的名字import os import re import pandas as pd from pandas.core.frame import DataFrame rootDir = '.' for dirName, subdirList, fileList in os.walk(rootDir, topdown=False): print('Found directory: %s' % dirName) for fname in fileList: print('\t%s' % fname) if "csv1.csv" == fname: var= pd.read_csv(fname)

我试过这段代码:

IOError: File csv1.csv does not exist

我可以在该文件夹中打印csv文件的名称,但是我收到错误: {{1}}
可能是什么问题?

1 个答案:

答案 0 :(得分:1)

正如您在评论中看到的那样,您必须加入rootDirdirNamefname

import os
import re
import pandas as pd
from pandas.core.frame import DataFrame

rootDir = '.'
for dirName, subdirList, fileList in os.walk(rootDir, topdown=False):
    print('Found directory: %s' % dirName)
    for fname in fileList:
        print('\t%s' % fname)
        filepath = os.path.join(rootDir, dirName, fname)
        if "csv1.csv" == fname:
            var = pd.read_csv(filepath)
            print var.head()

os.path.join(path, *paths)

  

智能地加入一个或多个路径组件。返回值是路径和*paths的任何成员的串联,在除了最后一个之外的每个非空部分之后只有一个目录分隔符(os.sep),这意味着结果将仅在分隔符中结束最后一部分是空的。如果组件是绝对路径,则抛弃所有先前的组件,并从绝对路径组件继续连接。

     

在Windows上,遇到绝对路径组件(例如r'\foo')时,不会重置驱动器号。如果组件包含驱动器号,则会丢弃所有先前的组件并重置驱动器号。请注意,由于每个驱动器都有一个当前目录,os.path.join("c:", "foo")表示相对于驱动器C:c:foo)上当前目录的路径,而不是c:\foo