BUG: nlargest raises TypeError "No matching signature found" on Float64Dtype Series, versions >1.3.0 · Issue #42816 · pandas-dev/pandas (original) (raw)

Code Sample, a copy-pastable example

this works:

pandas.Series(numpy.random.random(10)).nlargest(5)

this works on pandas 1.2.5 but fails on 1.3.0 and 1.3.1. All Float64DType Series seem to have the same issue

pandas.Series(numpy.random.random(10)).astype('Float64').nlargest(5)

Software/hardware

python version: 3.8.10
Ubuntu 20.04
(Intel Tiger Lake CPU)

Stack trace

TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_213893/2592114079.py in <module>
----> 1 pandas.Series(numpy.random.random(10)).astype('Float64').nlargest(5)

~/.pyenv/versions/3.8.10/envs/myvenv/lib/python3.8/site-packages/pandas/core/series.py in nlargest(self, n, keep)
   3764         dtype: int64
   3765         """
-> 3766         return algorithms.SelectNSeries(self, n=n, keep=keep).nlargest()
   3767 
   3768     def nsmallest(self, n: int = 5, keep: str = "first") -> Series:

~/.pyenv/versions/3.8.10/envs/myvenv/lib/python3.8/site-packages/pandas/core/algorithms.py in nlargest(self)
   1217 
   1218     def nlargest(self):
-> 1219         return self.compute("nlargest")
   1220 
   1221     def nsmallest(self):

~/.pyenv/versions/3.8.10/envs/myvenv/lib/python3.8/site-packages/pandas/core/algorithms.py in compute(self, method)
   1285         # arr passed into kth_smallest must be contiguous. We copy
   1286         # here because kth_smallest will modify its input
-> 1287         kth_val = algos.kth_smallest(arr.copy(order="C"), n - 1)
   1288         (ns,) = np.nonzero(arr <= kth_val)
   1289         inds = ns[arr[ns].argsort(kind="mergesort")]

~/.pyenv/versions/3.8.10/envs/myvenv/lib/python3.8/site-packages/pandas/_libs/algos.pyx in pandas._libs.algos.__pyx_fused_cpdef()

TypeError: No matching signature found

Thanks!