example python pandas timedelta

example - datetime python 3



Python: Convertir timedelta a int en un marco de datos (4)

Me gustaría crear una columna en un marco de datos de pandas que sea una representación entera del número de días en una columna timedelta. ¿Es posible usar ''datetime.days'' o necesito hacer algo más manual?

columna timedelta

7 días, 23:29:00

columna de día entero

7 7


Los objetos de Timedelta tienen atributos de instancia de solo lectura .days , .seconds y .microseconds .


Podrías hacer esto, donde td es tu serie de timedeltas. La división convierte los deltas de nanosegundos en deltas de día, y la conversión a int cae a días completos.

import numpy as np (td / np.timedelta64(1, ''D'')).astype(int)


Si la pregunta no es solo "¿cómo acceder a una forma entera del timedelta?" pero "¿cómo convertir la columna timedelta en el marco de datos a un int?" La respuesta puede ser un poco diferente. Además del .dt.days acceso .dt.days , necesita df.astype o pd.to_numeric

Cualquiera de estas opciones debería ayudar:

df[''tdColumn''] = pd.to_numeric(df[''tdColumn''].dt.days, downcast=''integer'')

o

df[''tdColumn''] = df[''tdColumn''].dt.days.astype(''int16'')


Use el atributo dt.days . Suponiendo que td es el nombre de su serie timedelta, acceda a este atributo a través de:

td.dt.days

También puede obtener los atributos de seconds y microseconds de la misma manera.