我在目录“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 循环中没有收到任何错误,但是当我尝试打印数据帧时出现 NameError。请帮忙
最佳答案
更好的是创建 DataFrame
的字典:
d = {'df' + str(i): pd.read_csv(j) for i, j in enumerate(os.listdir(r'G:\files'))}
import glob
#get files *.csv, thank you anki_91
d = {'df' + str(i): pd.read_csv(j) for i, j in enumerate(glob.glob('G:/files/*.csv'))}
或者:
d = {}
for i, j in enumerate(os.listdir(r'G:\files')):
d['df' + str(i)] = pd.read_csv(j)
对于每个 DataFrame,通过 key
s 选择字典:
print (d['df0'])
print (d['df1'])
你需要的是可能的,但不是recommended :
for i, j in enumerate(os.listdir(r'G:\files')):
globals()['df' + str(i)] = pd.read_csv(j)
关于python - 无法在for循环中创建pandas数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55789107/