These are the changes in pandas 1.3.0. See :ref:`release` for a full changelog including other versions of pandas.
{{ header }}
When reading from a remote URL that is not handled by fsspec (ie. HTTP and
HTTPS) the dictionary passed to storage_options
will be used to create the
headers included in the request. This can be used to control the User-Agent
header or send other custom headers (:issue:`36688`).
For example:
.. ipython:: python headers = {"User-Agent": "pandas"} df = pd.read_csv( "https://download.bls.gov/pub/time.series/cu/cu.item", sep="\t", storage_options=headers )
- Added :meth:`MultiIndex.dtypes` (:issue:`37062`)
- Improve error message when
usecols
andnames
do not match for :func:`read_csv` andengine="c"
(:issue:`29042`)
These are bug fixes that might have notable behavior changes.
Some minimum supported versions of dependencies were updated. If installed, we now require:
Package | Minimum Version | Required | Changed |
---|---|---|---|
numpy | 1.16.5 | X | |
pytz | 2017.3 | X | |
python-dateutil | 2.7.3 | X | |
bottleneck | 1.2.1 | ||
numexpr | 2.6.8 | ||
pytest (dev) | 5.0.1 | ||
mypy (dev) | 0.782 |
For optional libraries the general recommendation is to use the latest version. The following table lists the lowest version per library that is currently being tested throughout the development of pandas. Optional libraries below the lowest tested version may still work, but are not considered supported.
Package | Minimum Version | Changed |
---|---|---|
beautifulsoup4 | 4.6.0 | |
fastparquet | 0.3.2 | |
fsspec | 0.7.4 | |
gcsfs | 0.6.0 | |
lxml | 4.3.0 | |
matplotlib | 2.2.3 | |
numba | 0.46.0 | |
openpyxl | 2.6.0 | |
pyarrow | 0.15.0 | |
pymysql | 0.7.11 | |
pytables | 3.5.1 | |
s3fs | 0.4.0 | |
scipy | 1.2.0 | |
sqlalchemy | 1.2.8 | |
tabulate | 0.8.7 | X |
xarray | 0.12.0 | |
xlrd | 1.2.0 | |
xlsxwriter | 1.0.2 | |
xlwt | 1.3.0 | |
pandas-gbq | 0.12.0 |
See :ref:`install.dependencies` and :ref:`install.optional_dependencies` for more.
- Deprecated casting of datetimelike (
timedelta64[ns]
,datetime64[ns]
,Datetime64TZDtype
,PeriodDtype
) to integer dtypes, usevalues.view(...)
instead (:issue:`38544`)
- Performance improvement in :meth:`IntervalIndex.isin` (:issue:`38353`)
- Bug in :class:`DataFrame` and :class:`Series` constructors sometimes dropping nanoseconds from :class:`Timestamp` (resp. :class:`Timedelta`)
data
, withdtype=datetime64[ns]
(resp.timedelta64[ns]
) (:issue:`38032`)
- Bug in :meth:`DataFrame.quantile`, :meth:`DataFrame.sort_values` causing incorrect subsequent indexing behavior (:issue:`38351`)
- Bug in :meth:`DataFrame.select_dtypes` with
include=np.number
now retains numericExtensionDtype
columns (:issue:`35340`)
- Bug in :meth:`CategoricalIndex.get_indexer` failing to raise
InvalidIndexError
when non-unique (:issue:`38372`) - Bug in inserting many new columns into a :class:`DataFrame` causing incorrect subsequent indexing behavior (:issue:`38380`)
- Bug in :meth:`DataFrame.iloc.__setitem__` and :meth:`DataFrame.loc.__setitem__` with mixed dtypes when setting with a dictionary value (:issue:`38335`)
- Bug in :meth:`DataFrame.drop` raising
TypeError
when :class:`MultiIndex` is non-unique and no level is provided (:issue:`36293`)
- Bug in :func:`read_csv` interpreting
NA
value as comment, whenNA
does contain the comment string fixed forengine="python"
(:issue:`34002`) - Bug in :func:`read_csv` raising
IndexError
with multiple header columns andindex_col
specified when file has no data rows (:issue:`38292`) - Bug in :func:`read_csv` not accepting
usecols
with different length thannames
forengine="python"
(:issue:`16469`) - Bug in :func:`read_csv` raising
TypeError
whennames
andparse_dates
is specified forengine="c"
(:issue:`33699`) - Allow custom error values for parse_dates argument of :func:`read_sql`, :func:`read_sql_query` and :func:`read_sql_table` (:issue:`35185`)