Muchas veces, cuando trabajamos con algunos datos que contienen fechas, es posible que necesitemos extraer el número de semana de una fecha en particular. En Python, se puede hacer fácilmente con la ayuda de pandas.
Ejemplo 1:
# importing pandas as pd import pandas as pd # creating a dictionary containing a date dict = {'Date':["2015-06-17"]} # converting the dictionary to a dataframe df = pd.DataFrame.from_dict(dict) # converting the date to the required format df['Date'] = pd.to_datetime(df['Date'], errors ='coerce') df.astype('int64').dtypes # extracting the week from the date weekNumber = df['Date'].dt.week print(weekNumber)
Producción:
0 25 Name: Date, dtype: int64
Ejemplo 2: También podemos hacer lo mismo para varias fechas agregando más fechas en el objeto ‘Fecha’.
# importing pandas as pd import pandas as pd # creating a dictionary containing a date dict = {'Date':["2020-06-17", "2020-01-14", "2020-09-20", "2020-08-15"]} # converting the dictionary to a # dataframe df = pd.DataFrame.from_dict(dict) # converting the date to the required # format df['Date'] = pd.to_datetime(df['Date'], errors ='coerce') df.astype('int64').dtypes # extracting the week from the date weekNumber = df['Date'].dt.week print(weekNumber)
Producción:
Ejemplo 3: Extracción del número de semana de fechas para varias fechas usando date_range() y to_series() .
- pandas.data_range(): genera todas las fechas desde la fecha de inicio hasta la fecha de finalización
Sintaxis:
pandas.date_range(inicio, fin, periodos, frecuencia, tz, normalizar, nombre, cerrado)
- pandas.to_series(): crea una serie con índice y valores iguales a las claves de índice.
Sintaxis:
Index.to_series(self, index, name)
# importing pandas as pd import pandas as pd # generating all dates in given range # with increment by days allDates = pd.date_range('2020-06-27', '2020-08-03', freq ='W') # converting dates to series series = allDates.to_series() series.dt.week
Producción:
Ejemplo 4: en este ejemplo, usaremos pandas.Series() para generar fechas y usar una forma diferente de convertir la serie al marco de datos.
pandas.Series(): se usa para crear un ndarray unidimensional con etiquetas de eje.
Sintaxis:
pandas.Series(data, index, dtype, name, copy, fastpath)
# importing pandas as pd import pandas as pd # generating the series dates = pd.Series(pd.date_range('2020-2-10', periods = 5, freq ='M')) # converting to dataframe df = pd.DataFrame({'date_given': dates}) # extracting the week number df['week_number'] = df['date_given'].dt.week df
Producción:
Publicación traducida automáticamente
Artículo escrito por parasmadan15 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA