Skip to content

read_fwf: IndexError: list index out of range when using dtype and usecols parameters #54868

Closed
@anmyachev

Description

@anmyachev

Reproducer:

import pandas as pd
from io import BytesIO

pd.read_fwf(BytesIO(b"a       b           c          d\r\nid8141  360.242940  149.910199 11950.7\r\nid1594  444.953632  166.985655 11788.4\r\n"), usecols=["a", "b", "d"], dtype={"a": str})  # <- IndexError: list index out of range

pandas 2.1.0rc0

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "Miniconda3\envs\modin\lib\site-packages\pandas\io\parsers\readers.py", line 1393, in read_fwf
    return _read(filepath_or_buffer, kwds)
  File "Miniconda3\envs\modin\lib\site-packages\pandas\io\parsers\readers.py", line 611, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "Miniconda3\envs\modin\lib\site-packages\pandas\io\parsers\readers.py", line 1448, in __init__
    self._engine = self._make_engine(f, self.engine)
  File "Miniconda3\envs\modin\lib\site-packages\pandas\io\parsers\readers.py", line 1723, in _make_engine
    return mapping[engine](f, **self.options)
  File "Miniconda3\envs\modin\lib\site-packages\pandas\io\parsers\python_parser.py", line 1324, in __init__
    PythonParser.__init__(self, f, **kwds)
  File "Miniconda3\envs\modin\lib\site-packages\pandas\io\parsers\python_parser.py", line 162, in __init__
    self._no_thousands_columns = self._set_no_thousand_columns()
  File "Miniconda3\envs\modin\lib\site-packages\pandas\io\parsers\python_parser.py", line 1186, in _set_no_thousand_columns
    and self.columns[i] in self.dtype
IndexError: list index out of range

Metadata

Metadata

Assignees

No one assigned

    Labels

    IO CSVread_csv, to_csvRegressionFunctionality that used to work in a prior pandas version

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions