BUG: df.fillna(dict, inplace=True) triggers FutureWarning in 1.5.0rc0 when DataFrame is empty · Issue #48480 · pandas-dev/pandas (original) (raw)

Pandas version checks

Reproducible Example

import pandas as pd df = pd.DataFrame(data=[[None, None], [None,None]], columns=['A', 'B']) df.fillna({'A': 1, 'B': 2}, inplace=True)

Issue Description

With the most recent development version 1.5.0rc0, I see that the code example raises the following warning:

FutureWarning: In a future version, df.iloc[:, i] = newvalswill attempt to set the values inplace instead of always setting a new array. To retain the old behavior, use eitherdf[df.columns[i]] = newvalsor, if columns are non-unique,df.isetitem(i, newvals)``

The df. fillna() API should not use code that is ambiguous or deprecated.

Expected Behavior

df.fillna() should do its job, silently.

Installed Versions

INSTALLED VERSIONS ------------------ commit : 224458epython : 3.8.13.final.0 python-bits : 64 OS : Darwin OS-release : 21.6.0 Version : Darwin Kernel Version 21.6.0: Wed Aug 10 14:25:27 PDT 2022; root:xnu-8020.141.5~2/RELEASE_X86_64 machine : x86_64 processor : i386 byteorder : little LC_ALL : None LANG : en_US.UTF-8 LOCALE : None.UTF-8 pandas : 1.5.0rc0 numpy : 1.23.2 pytz : 2021.1 dateutil : 2.8.2 setuptools : 56.0.0 pip : 22.2.2 Cython : None pytest : 7.1.2 hypothesis : None sphinx : 1.8.6 blosc : None feather : None xlsxwriter : None lxml.etree : 4.9.1 html5lib : None pymysql : None psycopg2 : None jinja2 : 2.11.3 IPython : 7.21.0 pandas_datareader: None bs4 : None bottleneck : None brotli : None fastparquet : None fsspec : None gcsfs : None matplotlib : 3.4.1 numba : None numexpr : None odfpy : None openpyxl : 3.0.10 pandas_gbq : None pyarrow : None pyreadstat : None pyxlsb : None s3fs : None scipy : None snappy : None sqlalchemy : 1.4.40 tables : None tabulate : 0.8.10 xarray : None xlrd : None xlwt : None zstandard : None tzdata : None