Pandas用部分通配符读取csv文件

2024-06-25 23:27:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个脚本,导入一个文件,然后对该文件执行某些操作并将结果输出到另一个文件中。在

df = pd.read_csv('somefile2018.csv')

上面的代码运行得非常好。但是,我希望避免在代码中硬编码文件名。在

脚本将在包含script.py和几个csv文件的文件夹(目录)中运行。在

我试过以下方法:

somefile_path = glob.glob('somefile*.csv')

df = pd.read_csv(somefile_path)

但我得到了以下错误:

ValueError: Invalid file path or buffer object type: <class 'list'>


Tags: 文件csvpath代码脚本编码dfread
3条回答

glob返回列表,而不是字符串。read_csv函数接受一个字符串作为输入来查找文件。试试这个:

for f in glob('somefile*.csv'):
    df = pd.read_csv(f)
    ...
    # the rest of your script

您可以在脚本中获取CSV文件的列表,并在其上循环。在

from os import listdir
from os.path import isfile, join
mypath = os.getcwd()

csvfiles = [f for f in listdir(mypath) if isfile(join(mypath, f)) if '.csv' in f]

for f in csvfiles:
    pd.read_csv(f)
# the rest of your script

循环每个文件并构建一个数据帧列表,然后使用concat将它们组合在一起。在

相关问题 更多 >