python - 无法在for循环中创建pandas数据框

标签 python 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 循环中没有收到任何错误,但是当我尝试打印数据帧时出现 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,通过 keys 选择字典:

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/

相关文章:

python - 在简单的 pandas 数据框上使用 tsfresh

python - 如何找到 DBSCAN 的最佳参数?

python - 将元素从for循环Python 3放入新数组中

python - Linux静态路由规则文件格式转换使用Python

python - 使用 JSON 功能读取 CSV

python - 指定匹配日期的行数

python - 为什么 cross_validation.train_test_split 中的参数 random_state 是整数而不是 bool 值

python - 如何将 url 路由到 Django 和 DRF 类的特定方法

python - 在python脚本中运行powershell脚本,如何让python在运行时打印powershell输出

python - Pandas DataFrame 列到数据透视表中的单元格