### Pandas version checks - [X] I have checked that this issue has not already been reported. - [X] I have confirmed this bug exists on the [latest version](https://pandas.pydata.org/docs/whatsnew/index.html) of pandas. - [X] I have confirmed this bug exists on the [main branch](https://pandas.pydata.org/docs/dev/getting_started/install.html#installing-the-development-version-of-pandas) of pandas. ### Reproducible Example ```python >>> import pandas as pd >>> sp = pd.arrays.SparseArray([1, np.nan]) >>> mapped = sp.map(lambda x: np.nan) >>> pd.isna(mapped.fill_value) True >>> pd.isna(mapped.sp_values)[0] True ``` ### Issue Description The current implementation of `SparseArray.map` allows the fill value to be included in the sparse values, causing potential problems. ### Expected Behavior `SparseArray.map` It should raise or recalculate the sparse array. ### Installed Versions <details> Replace this line with the output of pd.show_versions() </details>