首页 > 解决方案 > 跳过行后列索引不起作用

问题描述

我必须将 CSV 数据加载到内存中以对其进行处理并从中提取某些统计信息。问题是这些数据来自不同的来源,因此我必须进行一些先前的修改。一个特定的文件包含一些不包含有用信息的行,因此我必须执行 17 行跳转才能到达标题。

    df = pd.read_csv(
        filepath,
        skiprows=provider['skip'],
        usecols=columns.keys(),
        decimal='.' if provider['currency'] == 'USD' else ',',
        delimiter=provider['delimiter']
    )

此代码适用于所有不需要跳行的提供程序,但不适用于需要跳行的提供程序。

ValueError: Usecols do not match columns, columns expected but not found: ['Establecimiento', 'Prefijos', 'Destino', 'Tarifa', 'Fecha Vigencia', 'Tarificación']

列名是正确的,如 df.columns 所示

Index(['Destino,Prefijos,Fecha Vigencia,Time Band,Tarifa,Variación,Tarificación Nª A,Establecimiento,Tarificación'], dtype='object')

但是,尝试通过这些访问将导致错误,并且使用 df.rename(columns=columns, inplace=True) 将不会导致任何更改。当没有 skiprows 时,所有这些代码都能完美运行。

标签: pythonpython-3.xpandasdataframe

解决方案


推荐阅读