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
timedelta.days
?Respuestas:
Utilice el
dt.days
atributo. Acceda a este atributo a través de:También puede obtener los atributos
seconds
ymicroseconds
de la misma manera.fuente
Podrías hacer esto, dónde
td
está tu serie de timedeltas. La división convierte los deltas de nanosegundos en deltas de días y la conversión a int se reduce a días completos.fuente
/
entretd
ynp
?Objetos de sólo lectura timedelta han atributos de instancia
.days
,.seconds
y.microseconds
.fuente
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
descriptor de acceso, necesitadf.astype
opd.to_numeric
Cualquiera de estas opciones debería ayudar:
o
fuente
timedelta64[ns]
. Si sus fechas son NaN, primero conviértalas a fecha y hora usando lato_datetime
función pandas , luego use la segunda opción anterior. Para obtener más detalles, visite to_datetime