gpt4 book ai didi

Python - 将 csv 文件复制到 Dataframe(但跳过子文件夹)

转载 作者:行者123 更新时间:2023-12-01 01:56:16 26 4
gpt4 key购买 nike

我使用下面的代码将一组 csv 文件从文件夹读取到数据框。但是,此文件夹有一个子文件夹以及这些 csv 文件。我如何跳过子文件夹而只读取 csv 文件。当我尝试运行具有子文件夹的文件夹时,以下代码会引发错误。

import pandas as pd
import glob
import numpy as np
import os
import datetime
import time

path = r'/Users/user/desktop/Sales/'


allFiles = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
df = pd.read_csv(file_,index_col=None, header=0)
list_.append(df)
sale_df = pd.concat(list_)
sale_df

Error message : IsADirectoryError: [Errno 21] Is a directory:
'/Users/user/desktop/Sales/2018-05-03/20180503000513-kevin@store.com-
190982.csv-1525305907670.csv'

有人可以帮忙吗?谢谢

编辑:问题是子目录的子目录名称中存在扩展名“.csv”。

在代码中编辑

path =r'/Users/user/desktop/Sales/2018-05-03/'
files_only = [file for file in
glob.glob('/Users/user/desktop/Sales/2018-05-03/*.csv') if not
os.path.isdir(file)]
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
df = pd.read_csv(files_only,index_col=None, header=0)
list_.append(df)
sale_df = pd.concat(list_)
sale_df['filename'] = os.path.basename(csv)
sale_df.append(frame)
sale_df

出现以下错误

ValueError:没有要连接的对象

请您帮忙。谢谢..

最佳答案

我的建议使用glob.glob来获取与指定字符串匹配的所有匹配文件/目录的列表,然后使用os模块来检查每个匹配的文件/目录以确保它是一个文件。它仅返回与 glob.glob() 匹配的文件的列表。

import glob
import os

files_only = [file for file in glob.glob('/path/to/files/*.ext') if not os.path.isdir(file)]

然后,您可以在 read_csv 循环中使用 files_only 列表。

所以在你的代码中:

files_only = [file for file in glob.glob('/Users/user/desktop/Sales/2018-05-03/*.csv') if not os.path.isdir(file)]
frame = pd.DataFrame()
list_ = []
for file in files_only:
df = pd.read_csv(file,index_col=None, header=0)
list_.append(df)
sale_df = pd.concat(list_)
sale_df['filename'] = os.path.basename(csv)
sale_df.append(frame)
sale_df

关于Python - 将 csv 文件复制到 Dataframe(但跳过子文件夹),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50153319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com