-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG: pivot_table
drops rows and columns despite values being non-NaN
#61113
Comments
Strangely, data = {
"row": [None, *range(4)],
"col": [*range(4), None],
"val": range(5)
}
df = pd.DataFrame(data)
out = df.pivot(index="col", columns="row", values="val")
print(out)
|
It looks like
Due to the usage in 1 above, your result df doesn't contain cases where |
I'll let @rhshadrach chime in |
Indeed, this seems duplicative of #53521. For now I recommend using |
@rhshadrach I was actually looking to keep all the NA rows and columns in the output as in the expected output above. dropna : bool, default True
Do not include columns whose entries are all NaN. If True,
- rows with a NaN value in any column will be omitted before
- computing margins.
+ - rows with a NaN value in any column will be omitted before computing margins
+ - index/column keys containing NA values will be dropped (see ``dropna`` parameter in ``pandas.DataFrame.groupby``) |
I'm +1 on adding to the docstring as suggested. |
I'll link a PR |
@rhshadrach PR has been linked |
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
Issue Description
Rows and columns are unexpectedly dropped while creating a pivot table with a single
NaN
index label and a singleNaN
column label and noNaN
values in the input data.Input data
Actual output
Expected Behavior
The docs for
dropna
state:Given that
dropna=True
by default, I'd expect all columns and rows to be present as each has at least one non-NaN
value.Expected output
Installed Versions
INSTALLED VERSIONS
commit : 3c93d06
python : 3.13.2
python-bits : 64
OS : Windows
OS-release : 11
Version : 10.0.22631
machine : AMD64
processor : AMD64 Family 25 Model 116 Stepping 1, AuthenticAMD
byteorder : little
LC_ALL : None
LANG : None
LOCALE : English_United States.1252
pandas : 3.0.0.dev0+2007.g3c93d06d64
numpy : 1.26.4
dateutil : 2.9.0.post0
pip : 25.0.1
Cython : 3.0.12
sphinx : 8.1.3
IPython : 9.0.2
adbc-driver-postgresql: None
adbc-driver-sqlite : None
bs4 : 4.13.3
blosc : None
bottleneck : 1.4.2
fastparquet : 2024.11.0
fsspec : 2025.3.0
html5lib : 1.1
hypothesis : 6.129.0
gcsfs : 2025.3.0
jinja2 : 3.1.6
lxml.etree : 5.3.1
matplotlib : 3.10.1
numba : 0.61.0
numexpr : 2.10.2
odfpy : None
openpyxl : 3.1.5
psycopg2 : 2.9.10
pymysql : 1.4.6
pyarrow : 19.0.1
pyreadstat : 1.2.8
pytest : 8.3.5
python-calamine : None
pytz : 2025.1
pyxlsb : 1.0.10
s3fs : 2025.3.0
scipy : 1.15.2
sqlalchemy : 2.0.39
tables : 3.10.2
tabulate : 0.9.0
xarray : 2024.9.0
xlrd : 2.0.1
xlsxwriter : 3.2.2
zstandard : 0.23.0
tzdata : 2025.1
qtpy : None
pyqt5 : None
The text was updated successfully, but these errors were encountered: