2017-01-03 51 views
1
df1 = pd.read_table('CUSR0000SS62031.csv', sep=',') 
df2 = pd.read_table('CUUR0000SS62031.csv', sep=',') 
df3 = pd.read_table('CUSR0000SERA02.csv', sep=',') 
df4 = pd.read_table('CUUR0000SERA02.csv', sep=',') 
df5 = pd.read_table('CUUR0000SEFR02.csv', sep=',') 

现在我写这样的代码,以加载的CSV文件....但它需要时间来产生码...如何在python中一次读取multile csv文件?

如果我有文件名的数组,我可以自动上面的代码与一个while/for循环?非常感谢,我试过但不知道如何也将df1的名称自动更改为n ...谢谢!

+0

如果你真的想要“一次”阅读它们,你会想看看在python中出色的'multiprocessing'库。这是一个高级主题,但功能强大,可让您同时运行多个进程以同时读取所有CSV文件,并利用当今现代多核CPU来快速完成任务。 –

+0

非常感谢!绝对让我大开眼界! –

+0

@DanFarrell因为磁盘I/O是这里的主要瓶颈,所以我不确定多处理在这里增加了些什么(但是很复杂)。那么,这需要一些基准。 –

回答

2

生成变量名是不是一个好主意,但作为一个不错的选择,你可以在列表解析创建dataframes:

df_list = [pd.read_table(f,sep=',') for f in ['CUSR0000SS62031.csv','CUUR0000SS62031.csv','CUSR0000SERA02.csv','CUUR0000SERA02.csv','CUUR0000SEFR02.csv']] 

然后通过索引来访问您的dataframes(例如:df_list[1]),或在循环:

for dfx in df_list: 
    # do something with dfx pd.dataframe object 
+0

Merci Beaucoup !!! –