Pandas 无法在for循环中创建数据帧

Pandas 无法在for循环中创建数据帧,pandas,sklearn-pandas,Pandas,Sklearn Pandas,我在目录“G:\files”下有五个文件,即a.csv、b.csv、c.csv、d.csv和e.csv,我想为所有文件创建不同的数据表 for i, j in enumerate(os.listdir(r'G:\files')): df_name = 'df' + str(i) df_name = pd.read_csv(j) 我没有在for循环中得到任何错误,但是,当我试图打印数据帧getting NameError时。请帮助更好的方法是创建DataFrames的字典: d

我在目录“G:\files”下有五个文件,即a.csv、b.csv、c.csv、d.csv和e.csv,我想为所有文件创建不同的数据表

for i, j in enumerate(os.listdir(r'G:\files')):
    df_name = 'df' + str(i)
    df_name = pd.read_csv(j)

我没有在for循环中得到任何错误,但是,当我试图打印数据帧getting NameError时。请帮助

更好的方法是创建
DataFrame
s的字典:

d = {'df' + str(i): pd.read_csv(j) for i, j in enumerate(os.listdir(r'G:\files'))}

或:

对于每个数据帧,选择dict by
key
s:

print (d['df0'])
print (d['df1'])

您需要的是可能的,但不是:

从这个。。。不要枚举,而是将每个csv文件和唯一变量名保存到字典中

import os
import pandas as pd
a = {}
k = 0
for file in os.listdir(r'G:\files'):
    df_name = 'df' + str(k)
    df_data = pd.read_csv(file)
    a[df_name] = df_data
    k += 1

print(type(a['df1']))
输出:

<class 'pandas.core.frame.DataFrame'>

可能使用:
eval(df_name)=pd.read_csv(j)
我刚刚意识到@jezral是我的一个很好的解释版本。
for i, j in enumerate(os.listdir(r'G:\files')):
    globals()['df' + str(i)] = pd.read_csv(j)
import os
import pandas as pd
a = {}
k = 0
for file in os.listdir(r'G:\files'):
    df_name = 'df' + str(k)
    df_data = pd.read_csv(file)
    a[df_name] = df_data
    k += 1

print(type(a['df1']))
<class 'pandas.core.frame.DataFrame'>