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
df = pd.DataFrame([["a", "b"], ["c", "d"], ["e", "f"]], columns=["left", "right"])
df["record"] = df[["left", "right"]].to_records()
print(df)
Issue Description
Printing a dataframe or a series with a column that has a dtype of "numpy.record" causes TypeError exception.
For the example above:
>>> df.dtypes
left object
right object
record (numpy.record, [('index', '<i8'), ('left', 'O'...
dtype: object
And print
raises an exception with the following traceback:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.10/site-packages/pandas/core/frame.py", line 1064, in __repr__
return self.to_string(**repr_params)
File "/usr/local/lib/python3.10/site-packages/pandas/core/frame.py", line 1245, in to_string
return fmt.DataFrameRenderer(formatter).to_string(
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/format.py", line 1136, in to_string
string = string_formatter.to_string()
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/string.py", line 30, in to_string
text = self._get_string_representation()
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/string.py", line 45, in _get_string_representation
strcols = self._get_strcols()
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/string.py", line 36, in _get_strcols
strcols = self.fmt.get_strcols()
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/format.py", line 617, in get_strcols
strcols = self._get_strcols_without_index()
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/format.py", line 883, in _get_strcols_without_index
fmt_values = self.format_col(i)
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/format.py", line 897, in format_col
return format_array(
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/format.py", line 1328, in format_array
return fmt_obj.get_result()
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/format.py", line 1359, in get_result
fmt_values = self._format_strings()
File "/usr/local/lib/python3.10/site-packages/pandas/io/formats/format.py", line 1413, in _format_strings
& np.all(notna(vals), axis=tuple(range(1, len(vals.shape))))
File "/usr/local/lib/python3.10/site-packages/pandas/core/dtypes/missing.py", line 434, in notna
res = isna(obj)
File "/usr/local/lib/python3.10/site-packages/pandas/core/dtypes/missing.py", line 185, in isna
return _isna(obj)
File "/usr/local/lib/python3.10/site-packages/pandas/core/dtypes/missing.py", line 214, in _isna
return _isna_array(obj, inf_as_na=inf_as_na)
File "/usr/local/lib/python3.10/site-packages/pandas/core/dtypes/missing.py", line 304, in _isna_array
result = np.isnan(values)
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
Expected Behavior
Dataframe with "numpy.record" column displayed correctly, as like it has an object dtype
>>> # df["record"] = [x for x in df[["left", "right"]].to_records()] # this is rendered correctly
>>> print(df)
left right record
0 a b [0, a, b]
1 c d [1, c, d]
2 e f [2, e, f]
Installed Versions
Reproduces both with the current latest master commit (below) and the latest pypi release (ca60aab)
INSTALLED VERSIONS
commit : 5514aa3
python : 3.10.6.final.0
python-bits : 64
OS : Linux
OS-release : 5.15.0-39-generic
Version : #42-Ubuntu SMP Thu Jun 9 23:42:32 UTC 2022
machine : x86_64
processor :
byteorder : little
LC_ALL : None
LANG : C.UTF-8
LOCALE : en_US.UTF-8
pandas : 1.6.0.dev0+114.g5514aa371
numpy : 1.23.3
pytz : 2022.2.1
dateutil : 2.8.2
setuptools : 63.2.0
pip : 22.2.1
Cython : None
pytest : None
hypothesis : None
sphinx : None
blosc : None
feather : None
xlsxwriter : None
lxml.etree : None
html5lib : None
pymysql : None
psycopg2 : None
jinja2 : None
IPython : None
pandas_datareader: None
bs4 : None
bottleneck : None
brotli : None
fastparquet : None
fsspec : None
gcsfs : None
matplotlib : None
numba : None
numexpr : None
odfpy : None
openpyxl : None
pandas_gbq : None
pyarrow : None
pyreadstat : None
pyxlsb : None
s3fs : None
scipy : None
snappy : None
sqlalchemy : None
tables : None
tabulate : None
xarray : None
xlrd : None
xlwt : None
zstandard : None
tzdata : None