我正在尝试创建一个数据集,其中所有数据集都存储在一个文件夹中。 我昨天在任何问题上都使用了下面的代码,但它似乎不起作用:
> **> Error:**
> ---> 35 data = create_dataframe(paths)
>
> <ipython-input-21-b5315aeab0d7> in create_dataframe(paths)
> 15 dataframes = {
> 16 (path, file): pd.read_csv(path + file + '.csv')
> ---> 17 for path in paths
> 18 for file in get_files_in_path(path)
> 19 }
>
> <ipython-input-21-b5315aeab0d7> in <dictcomp>(.0)
> 16 (path, file): pd.read_csv(path + file + '.csv')
> 17 for path in paths
> ---> 18 for file in get_files_in_path(path)
> 19 }
> 20
>
> <ipython-input-21-b5315aeab0d7> in get_files_in_path(path)
> 11
> 12 def get_files_in_path(path):
> ---> 13 return [f.split('.')[0] for f in listdir(path) if isfile(join(path, f))]
> 14
> 15 dataframes = {
>
> <ipython-input-21-b5315aeab0d7> in <listcomp>(.0)
> 11
> 12 def get_files_in_path(path):
> ---> 13 return [f.split('.')[0] for f in listdir(path) if isfile(join(path, f))]
> 14
> 15 dataframes = {
>
> **NameError: name 'isfile' is not defined**
你能告诉我怎么修吗
代码:
from os import listdir
from os.path import join
import os
def create_dataframe(paths):
def get_files_in_path(path):
return [f.split('.')[0] for f in listdir(path) if isfile(join(path, f))]
dataframes = {
(path, file): pd.read_csv(path + file + '.csv')
for path in paths
for file in get_files_in_path(path)
}
df = pd.concat(dataframes, names=['path', 'file', '_'])
return df
在这个问题和答案之后,我也试着改变{
使
from os.path import join
成为from os.path import join, isfile
import os.path
不会将os.path
模块中定义的每个名称导入当前名称空间;它只导入名称os
。您仍然需要使用限定名os.path.isfile
,除非您使用from os.path import isfile
相关问题 更多 >
编程相关推荐