Closed
Description
see the example in #2759
should certain operations, e.g. shift
preserve the dtype of the output object,
simulated like this (rather than return an upcasted version)
this obviously is easier if we had an integer NA
would have to add a fillna keyword to shift to make this work
(so we don't have to guess on the fill value for integer/bool types)
mask.astype('O').shift().fillna(0).astype(mask.dtype)