Skip to content

BUG: bad display for complex series with nan #53762

Closed
@Charlie-XIAO

Description

@Charlie-XIAO

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

Metadata

Metadata

Assignees

Labels

BugNeeds TriageIssue that has not been reviewed by a pandas team member

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions