2

I want to know if there's a way in python for reading multiple CSV file form a folder and assigning to separate data frame by the name of the file. The below code will throw an error but to show the point I pasted it

import glob
for filename in glob.glob('*.csv'):
    index = filename.find(".csv")
    if "test" in filename:
        filename[:index]) = pd.read_csv(filename)
Sociopath
  • 12,395
  • 17
  • 43
  • 69
Guna pandian
  • 65
  • 1
  • 9

1 Answers1

6

I believe you need create dictionary of DataFrame with keys by filenames:

d = {}
for filename in glob.glob('*.csv'):
    if "test" in filename:
        d[filename[:-4]] = pd.read_csv(filename)

What is same as:

d = {f[:-4]: pd.read_csv(f) for f in glob.glob('*.csv') if "test" in f}

If want only name of file is possible use:

d = {os.path.basename(f).split('.')[0]:pd.read_csv(f) for f in glob.glob('*.csv') if "test" in f}
jezrael
  • 729,927
  • 78
  • 1,141
  • 1,090