Closed
Description
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
>>> pd.Series([complex("nan")])
0 NaN
dtype: complex128
>>> pd.Series([1, complex("nan"), 2])
0 1.0+0.0j
1 N000a000N
2 2.0+0.0j
dtype: complex128
Issue Description
Related to #53682, which fixes the problem that series with complex nan raises. See also #53682 (comment) in which the repr is buggy. This is likely caused by the FloatArrayFormatter
, which does not distinguish float nan and complex nan (both treated as NaN
). However, complex nan will go through the alignment process of complex numbers, which assumes the format of x.x+x.xj
. One possible solution is to treat complex nans as NaN+0.0j
(unlike float nans). I will investigate to see if there are better solutions, and if not make a PR for this.
Expected Behavior
>>> import pandas as pd
>>> pd.Series([complex("nan")])
0 NaN+0.0j
dtype: complex128
>>> pd.Series([1, complex("nan"), 2])
0 1.0+0.0j
1 NaN+0.0j
2 2.0+0.0j
dtype: complex128
Installed Versions
INSTALLED VERSIONS
------------------
commit : d36da2b77c4e9b6a7e5064bde0f2775bcf989c69
python : 3.9.6.final.0
python-bits : 64
OS : Windows
OS-release : 10
Version : 10.0.22621
machine : AMD64
processor : Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
byteorder : little
LC_ALL : None
LANG : en_US.UTF-8
LOCALE : Chinese (Simplified)_China.936
pandas : 2.1.0.dev0+1007.gd36da2b77c
numpy : 1.24.3
pytz : 2023.3
dateutil : 2.8.2
setuptools : 56.0.0
pip : 21.1.3
Cython : 0.29.33
pytest : 7.3.2
hypothesis : 6.78.2
sphinx : 6.2.1
blosc : 1.11.1
feather : None
xlsxwriter : 3.1.2
lxml.etree : 4.9.2
html5lib : 1.1
pymysql : 1.0.3
psycopg2 : 2.9.6
jinja2 : 3.1.2
IPython : 8.14.0
pandas_datareader: None
bs4 : 4.12.2
bottleneck : 1.3.7
brotli :
fastparquet : 2023.4.0
fsspec : 2023.6.0
gcsfs : 2023.6.0
matplotlib : 3.7.1
numba : 0.57.0
numexpr : 2.8.4
odfpy : None
openpyxl : 3.1.2
pandas_gbq : None
pyarrow : 12.0.1
pyreadstat : 1.2.2
pyxlsb : 1.0.10
s3fs : 2023.6.0
scipy : 1.10.1
snappy :
sqlalchemy : 2.0.16
tables : 3.8.0
tabulate : 0.9.0
xarray : 2023.5.0
xlrd : 2.0.1
zstandard : 0.21.0
tzdata : 2023.3
qtpy : None
pyqt5 : None