Convertir Timedelta a Int en Pandas

Muhammad Maisam Abbas 23 enero 2022
Convertir Timedelta a Int en Pandas

Este tutorial discutirá la conversión de timedelta a int usando el atributo dt en Pandas.

Convierta el timedelta en int usando el atributo dt en Pandas

Para convertir el timedelta en un valor entero, podemos usar el atributo dt de la biblioteca pandas. El atributo dt nos permite extraer componentes del timedelta. Por ejemplo, podemos extraer el año, mes, día, minutos o segundos usando el atributo dt. Para hacer eso, necesitamos escribir el nombre del componente después del atributo dt. Para mostrar todos los componentes de la variable timedelta, podemos utilizar el atributo componentes. Por ejemplo, creemos una serie de tiempo usando el atributo Series de pandas y mostremos sus componentes usando el atributo componentes.

import pandas as pd

time_series = pd.Series(pd.timedelta_range(start="1 days", end="10 days", freq="1500T"))
time_series.dt.components

Producción:

Serie temporal de pandas

Como puede ver, el atributo componentes mostraba todos los componentes de la serie temporal. El atributo timedelta_range() se utiliza en el código anterior para crear la serie de tiempo. Podemos definir el punto inicial y final y la frecuencia con la que cambiará el tiempo dentro del atributo timedelta_range(). Podemos extraer cualquiera de estos componentes usando el nombre de ese componente. Por ejemplo, extraigamos el componente de días de la serie de tiempo anterior. Vea el código a continuación.

import pandas as pd

time_series = pd.Series(pd.timedelta_range(start="1 days", end="10 days", freq="1500T"))
time_series.dt.days

Producción :

0    1
1    2
2    3
3    4
4    5
5    6
6    7
7    8
8    9
dtype: int64

Puede extraer cualquier componente que desee de la serie temporal anterior. También podemos convertir el timedelta en un número entero dividiéndolo por el timedelta de un día o extrayendo su parte entera usando el atributo astype(). Por ejemplo, creemos un objeto timedelta y lo convertiremos en un número entero para obtener el valor del día usando NumPy. Vea el código a continuación.

import numpy as np

x = np.timedelta64(2058311000000000, "ns")
day = x.astype("timedelta64[D]")
days.astype(int)

Producción :

23.0

El timedelta está en realidad en el tipo de datos int64, y podemos extraer nuestro componente deseado convirtiéndolo en un int usando el atributo astype(). También podemos convertir el timedelta a horas o segundos o cualquier otro componente utilizando el mismo método. Para hacer eso, necesitamos cambiar D en la tercera línea de código a h para horas y s para segundos, y así sucesivamente.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Pandas DateTime