使用python list读取pandas CSV文件

Using python list to read in pandas CSV file

本问题已经有最佳答案,请猛点这里访问。

我正在尝试读取12个独立的csv文件,并希望使用for循环来完成此操作。出于某种原因,代码似乎不起作用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
files = ['Jan2016', 'Feb2016', 'Mar2016', 'Apr2016', 'May2016', 'Jun2016', 'Jul2016', 'Aug2016', 'Sep2016', 'Oct2016', 'Nov2016', 'Dec2016']

for file in files:
    file = pd.read_csv("/Volumes/Toshiba/PrescriptionData/Results2/" + i +".csv")

print(Jan2016)

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-49-906109eb8ce9> in <module>()
      4     file = pd.read_csv("/Volumes/Toshiba/PrescriptionData/Results2/" + i +".csv")
      5
----> 6 print(Jan2016)

NameError: name 'Jan2016' is not defined

但是,当我输入print(文件)时,代码编译并打印来自dec2016 csv文件的数据(即"文件"列表中的最终值)。有关于为什么这个for循环不工作的想法吗?


数据帧字典需要dict comprehension

1
2
path ="/Volumes/Toshiba/PrescriptionData/Results2/"
dfs = {file : pd.read_csv(path + file +".csv") for file in files}

与以下内容相同:

1
2
3
4
dfs = {}
path ="/Volumes/Toshiba/PrescriptionData/Results2/"
for file in files:
    dfs[file] = pd.read_csv(path + file +".csv")

然后按键在dictionary中选择:

1
print (dfs['Jan2016'])