A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pandas-dev/pandas/issues/38798 below:

Series constructor with nullable unsigned integer dtype fails with large number · Issue #38798 · pandas-dev/pandas · GitHub

xref #38746

The following runs fine:

In [30]: s = pd.Series([np.iinfo(np.uint64).max-1, 1], dtype="uint64")

In [31]: s
Out[31]: 
0    18446744073709551614
1                       1
dtype: uint64

but with the equivalent extension dtype the constructor throws:

In [29]: s = pd.Series([np.iinfo(np.uint64).max-1, 1], dtype="UInt64")
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~/repos/pandas/pandas/core/arrays/integer.py in safe_cast(values, dtype, copy)
    100     try:
--> 101         return values.astype(dtype, casting="safe", copy=copy)
    102     except TypeError as err:

TypeError: Cannot cast array data from dtype('float64') to dtype('uint64') according to the rule 'safe'

The above exception was the direct cause of the following exception:

TypeError                                 Traceback (most recent call last)
<ipython-input-29-7fde9ec5cff9> in <module>
----> 1 s = pd.Series([np.iinfo(np.uint64).max-1, 1], dtype="UInt64")

~/repos/pandas/pandas/core/series.py in __init__(self, data, index, dtype, name, copy, fastpath)
    339                     data = data.copy()
    340             else:
--> 341                 data = sanitize_array(data, index, dtype, copy, raise_cast_failure=True)
    342 
    343                 data = SingleBlockManager.from_array(data, index)

~/repos/pandas/pandas/core/construction.py in sanitize_array(data, index, dtype, copy, raise_cast_failure)
    485 
    486         if dtype is not None:
--> 487             subarr = _try_cast(data, dtype, copy, raise_cast_failure)
    488         else:
    489             subarr = maybe_convert_platform(data)

~/repos/pandas/pandas/core/construction.py in _try_cast(arr, dtype, copy, raise_cast_failure)
    594         # SparseDtype does not
    595         array_type = dtype.construct_array_type()._from_sequence
--> 596         subarr = array_type(arr, dtype=dtype, copy=copy)
    597         return subarr
    598 

~/repos/pandas/pandas/core/arrays/integer.py in _from_sequence(cls, scalars, dtype, copy)
    307         cls, scalars, *, dtype=None, copy: bool = False
    308     ) -> "IntegerArray":
--> 309         values, mask = coerce_to_array(scalars, dtype=dtype, copy=copy)
    310         return IntegerArray(values, mask)
    311 

~/repos/pandas/pandas/core/arrays/integer.py in coerce_to_array(values, dtype, mask, copy)
    204         values = safe_cast(values, dtype, copy=False)
    205     else:
--> 206         values = safe_cast(values, dtype, copy=False)
    207 
    208     return values, mask

~/repos/pandas/pandas/core/arrays/integer.py in safe_cast(values, dtype, copy)
    106             return casted
    107 
--> 108         raise TypeError(
    109             f"cannot safely cast non-equivalent {values.dtype} to {np.dtype(dtype)}"
    110         ) from err

TypeError: cannot safely cast non-equivalent float64 to uint64

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4