BUG: Series.mul silently returns wrong values with UInt8
dtype when overflowing the max value range
#59261
Open
2 of 3 tasks
Labels
Bug
Closing Candidate
May be closeable, needs more eyeballs
Numeric Operations
Arithmetic, Comparison, and Logical operations
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
When multiplying a
UInt8
series by a python integer, for which the result overflows the dtype range, the resulting values are wrong.AFAICT this only happens with the
UInt8
dtype (I testedUInt8
,UInt16
,UInt32
andUInt64
).Other UInt dtypes are properly casted to the "next" dtype.
Anybody computing percentages on UInt8 dtypes will easily hit this issue.
This was introduced in the 2.1.0 Release.
Expected Behavior
I expect the series to be casted to
UInt16
when the results overflow theUInt8
range and return the correct values.Installed Versions
INSTALLED VERSIONS
commit : fd3f571
python : 3.11.6.final.0
python-bits : 64
OS : Linux
OS-release : 5.15.153.1-microsoft-standard-WSL2
Version : #1 SMP Fri Mar 29 23:14:13 UTC 2024
machine : x86_64
processor : x86_64
byteorder : little
LC_ALL : None
LANG : C.UTF-8
LOCALE : en_US.UTF-8
pandas : 2.2.0
numpy : 1.26.4
pytz : 2024.1
dateutil : 2.9.0.post0
setuptools : 70.3.0
pip : 23.3.1
Cython : None
pytest : 7.4.4
hypothesis : None
sphinx : 7.3.7
blosc : None
feather : None
xlsxwriter : None
lxml.etree : None
html5lib : None
pymysql : 1.4.6
psycopg2 : None
jinja2 : None
IPython : 8.26.0
pandas_datareader : None
adbc-driver-postgresql: None
adbc-driver-sqlite : None
bs4 : 4.12.3
bottleneck : None
dataframe-api-compat : None
fastparquet : None
fsspec : 2024.6.1
gcsfs : None
matplotlib : 3.9.1
numba : None
numexpr : None
odfpy : None
openpyxl : 3.1.5
pandas_gbq : None
pyarrow : 16.1.0
pyreadstat : None
python-calamine : None
pyxlsb : None
s3fs : 2024.6.1
scipy : None
sqlalchemy : 2.0.31
tables : None
tabulate : None
xarray : None
xlrd : None
zstandard : None
tzdata : 2024.1
qtpy : None
pyqt5 : None
The text was updated successfully, but these errors were encountered: