From b613a16173bf87a94513f7dc46711f9dc6db4543 Mon Sep 17 00:00:00 2001 From: Khemkaran Sevta Date: Fri, 10 Oct 2025 15:21:14 +0530 Subject: [PATCH] Fix bug read_csv with pyarrow engine cannot handle single-line CSV files --- pandas/io/parsers/arrow_parser_wrapper.py | 1 + pandas/tests/io/parser/common/test_common_basic.py | 11 +++++++++++ 2 files changed, 12 insertions(+) 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