熊猫用部分通配符读取csv文件

Kvo*_*the 5 python pandas

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

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'>

Jam*_*mes 9

glob返回一个列表,而不是一个字符串.该read_csv函数将字符串作为查找文件的输入.试试这个:

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


小智 6

要读取遵循特定模式的所有文件,只要它们共享相同的架构,请使用此函数:

import glob
import pandas as pd

def pd_read_pattern(pattern):
    files = glob.glob(pattern)

    df = pd.DataFrame()
    for f in files:
        df = df.append(pd.read_csv(f))

    return df.reset_index(drop=True)

df = pd_read_pattern('somefile*.csv')

Run Code Online (Sandbox Code Playgroud)

这将适用于绝对或相对路径。