将Read_csv循环到pandas数据帧

时间:2018-03-29 15:05:05

标签: python pandas dataframe

我想将文件夹中的所有.csv文件加载到每个文件的单独数据框列表中

该文件夹称为硬币。

for file in './coins': 
    logs_total = [pd.read_csv('./coins/'+file, engine='python')] 

错误:

IsADirectoryError: [Errno 21] Is a directory: './coins/.'

没有引擎=' python'它的:

ParserError: Error tokenizing data. C error: Calling read(nbytes) on source failed. Try engine='python'.

1 个答案:

答案 0 :(得分:2)

您的for循环未引用coins文件夹中的文件。所有Python都知道'./coins'是一个字符串,并且您正在迭代该字符串中的每个字母。

另外,如果你想用for循环构建一个数据框列表,你应该首先在循环之外创建一个列表并附加到它(或者你可以使用列表理解)。

要访问这些文件,您可以导入osglob以获取文件名。以下是使用os的示例。

import os
import pandas as pd

log_total = []
for file in os.listdir('./coins'):
    log_total.append(pd.read_csv('./coins/'+file))

以下是使用glob和列表理解的示例。

from glob import glob
import pandas as pd

log_total = [pd.read_csv(f) for f in glob('./coins/*.csv')]