How can one downcast columns with nullable integers in pandas DataFrames?
# input DataFrame
import pandas as pd, numpy as np
d = pd.DataFrame({'x':[1,3]}, dtype=np.int64)
d['y'] = pd.Series([2,np.nan], dtype=pd.Int64Dtype())
# downcasting 'x' works
d['x'] = pd.to_numeric(d['x'], downcast='unsigned')
# downcasting 'y' does not work
d['y'] = pd.to_numeric(d['y'], downcast='unsigned')
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# File ".../Python-3.6.3/lib/python3.6/site-packages/pandas/core/tools/numeric.py", line 165, in to_numeric
# elif downcast == "unsigned" and np.min(values) >= 0:
# File ".../Python-3.6.3/lib/python3.6/site-packages/numpy/core/fromnumeric.py", line 2618, in amin
# initial=initial)
# File ".../Python-3.6.3/lib/python3.6/site-packages/numpy/core/fromnumeric.py", line 86, in _wrapreduction
# return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
# File ".../Python-3.6.3/lib/python3.6/site-packages/pandas/core/arrays/integer.py", line 375, in __array_ufunc__
# raise NotImplementedError("The 'reduce' method is not supported.")
# NotImplementedError: The 'reduce' method is not supported.
Thank you for your help!