Pandas 无法在for循环中创建数据帧
我在目录“G:\files”下有五个文件,即a.csv、b.csv、c.csv、d.csv和e.csv,我想为所有文件创建不同的数据表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
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'>