pandas 2.0 (April 2023) added a dtype_backend argument to the readers and to convert_dtypes. Passing dtype_backend="pyarrow" to read_csv, read_parquet or read_json stores columns as Arrow arrays instead of NumPy arrays.
The practical wins are concrete. Strings stop being object arrays of Python str, which typically cuts memory for text-heavy frames several-fold. Integer columns containing missing values stay integers instead of being silently upcast to float64, so an identifier column no longer turns into 1.0. And null handling becomes consistent, with pd.NA rather than a mix of NaN, None and NaT.
The cost is compatibility. Some third-party code reaches for .values and expects a NumPy array, and a few pandas operations still fall back or raise on Arrow-backed columns. pyarrow must be installed. Adopt it per read rather than globally at first, and convert back with df.astype(...) at the boundary where a library needs NumPy. pandas 3.0 makes a PyArrow-backed string dtype the default for text columns regardless of this setting.