diff --git a/pandas/io/parsers/arrow_parser_wrapper.py b/pandas/io/parsers/arrow_parser_wrapper.py index 86bb5f190e403..658942a41fd6c 100644 --- a/pandas/io/parsers/arrow_parser_wrapper.py +++ b/pandas/io/parsers/arrow_parser_wrapper.py @@ -217,6 +217,9 @@ def _finalize_pandas_output(self, frame: DataFrame) -> DataFrame: except TypeError as err: # GH#44901 reraise to keep api consistent raise ValueError(str(err)) from err + + self._set_date_column_dtype(frame, date_columns=["date_column1", "date_column2"], dtype="timestamp[ns][pyarrow]") + return frame def _validate_usecols(self, usecols) -> None: @@ -306,4 +309,23 @@ def read(self) -> DataFrame: else: frame = table.to_pandas() + return self._finalize_pandas_output(frame) + + + def _set_date_column_dtype(self, frame: DataFrame, date_columns: list, dtype: str): + """ + Sets the dtype for specified date columns in the DataFrame. + + Parameters + ---------- + frame : DataFrame + The DataFrame to modify. + date_columns : list + List of column names that are date columns. + dtype : str + The dtype to apply to these columns, e.g., 'datetime64[ns]'. + """ + for col in date_columns: + if col in frame.columns: + frame[col] = frame[col].astype(dtype)