diff --git a/pandas/io/parsers/arrow_parser_wrapper.py b/pandas/io/parsers/arrow_parser_wrapper.py index ad39d0ebf4326..dbc6f6399abbd 100644 --- a/pandas/io/parsers/arrow_parser_wrapper.py +++ b/pandas/io/parsers/arrow_parser_wrapper.py @@ -140,6 +140,7 @@ def handle_warning(invalid_row) -> str: ] self.read_options = { + "column_names": [] if self.header is None else self.kwds["names"], "autogenerate_column_names": self.header is None, "skip_rows": self.header if self.header is not None diff --git a/pandas/tests/io/parser/common/test_common_basic.py b/pandas/tests/io/parser/common/test_common_basic.py index 3680273f5e98a..9b5959b374dc4 100644 --- a/pandas/tests/io/parser/common/test_common_basic.py +++ b/pandas/tests/io/parser/common/test_common_basic.py @@ -119,6 +119,17 @@ def test_csv_mixed_type(all_parsers): tm.assert_frame_equal(result, expected) +def test_read_csv_single_line(all_parsers): + # GH62635 + parser = all_parsers + table = parser.read_csv( + StringIO("1,2,3\n"), + names=["col1", "col2", "col3"], + ) + expected = DataFrame({"col1": [1], "col2": [2], "col3": [3]}) + tm.assert_frame_equal(table, expected) + + def test_read_csv_low_memory_no_rows_with_index(all_parsers): # see gh-21141 parser = all_parsers