conversión de tipo no deseado en pandas.DataFrame.update

¿Hay alguna razón por la que los pandas cambian el tipo de columnas de int para flotar en la actualización, y puedo evitar que lo haga? Aquí hay un código de ejemplo del problema

import pandas as pd import numpy as np df = pd.DataFrame({'int': [1, 2], 'float': [np.nan, np.nan]}) print('Integer column:') print(df['int']) for _, df_sub in df.groupby('int'): df_sub['float'] = float(df_sub['int']) df.update(df_sub) print('NO integer column:') print(df['int']) 

Related of "conversión de tipo no deseado en pandas.DataFrame.update"

Esta es la razón para esto: ya que efectivamente enmascara ciertos valores en una columna y los reemplaza (con sus actualizaciones), algunos valores podrían convertirse en `nan

en una matriz de enteros, esto es imposible, por lo que los tipos numéricos se convierten a priori a flotación (por eficiencia), ya que la primera comprobación es más costosa que hacer esto

es posible un cambio de dtype back … simplemente no está en el código en este momento, por lo tanto, este es un error (un poco no trivial para corregir): github.com/pydata/pandas/issues/4094