read_fwf: IndexError: list index out of range when using dtype and usecols parameters · Issue #54868 · pandas-dev/pandas (original) (raw)

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 "", line 1, in 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