BUG: inplace behavior is inconsist for fillna · Issue #47188 · pandas-dev/pandas (original) (raw)
Pandas version checks
- I have checked that this issue has not already been reported.
- I have confirmed this bug exists on the latest version of pandas.
- I have confirmed this bug exists on the main branch of pandas.
Reproducible Example
import pandas as pd import numpy as np pdf = pd.DataFrame({"x": [np.nan, 2, 3, 4, np.nan, 6], "y": [np.nan, 2, 3, 4, np.nan, 6]}) pser = pdf.x
Didn't make a copy write to existing (it's unexpected behavior)
pdf.fillna(0, inplace=True)
pser 0 0.0 1 2.0 2 3.0 3 4.0 4 0.0 5 6.0
import pandas as pd import numpy as np pdf = pd.DataFrame({"x": [np.nan, 2, 3, 4, np.nan, 6], "y": [np.nan, 2, 3, 4, np.nan, 6]}) pser = pdf.x
Make a copy and doesn't write to existing (it's expected behavior)
pdf.fillna({"x": -1, "y": -2}, inplace=True) pser 0 NaN 1 2.0 2 3.0 3 4.0 4 NaN 5 6.0 Name: x, dtype: float64
Issue Description
Looks like behavior is a little bit differet in current pandas.
Expected Behavior
Always make a copy and doesn't write to existing array for Do in-place operation in all functions with inplace (such like eval
/update
/fillna
).
Installed Versions
1.4+