Requisito previo: expresiones regulares en Python
En estos artículos, discutiremos cómo extraer datos de tiempo de una columna de archivo de Excel usando Pandas. Supongamos que nuestro archivo de Excel se parece a la imagen dada a continuación, entonces tenemos que extraer el Tiempo de la columna de la hoja de Excel y almacenarlo en una nueva columna de Marco de datos.
Para ver el archivo de Excel, haga clic aquí .
Acercarse:
- Importe el módulo requerido.
- Importar datos desde un archivo de Excel.
- Cree una columna adicional para almacenar el tiempo extraído.
- Establecer índice para buscar la columna de extracción.
- Defina el patrón de formato de hora (HH: MM: SS).
- Tiempo de búsqueda y asignación a la columna respectiva en Dataframe.
Veamos la implementación paso a paso:
Paso 1: Importe el módulo requerido y lea los datos del archivo de Excel.
Python3
# importing required module import pandas as pd; import re; # Read excel file and store in to DataFrame data = pd.read_excel("time_sample_data.xlsx"); print("Original DataFrame") data
Producción:
Paso 2: haga una columna adicional para almacenar datos de tiempo.
Python3
# Create column for Time data['New time'] = None data
Producción:
Paso 3: Establecer índice para buscar
Python3
# set index index_set = data.columns.get_loc('Description') index_time = data.columns.get_loc('New time') print(index_set, index_time)
Producción:
1 2
Paso 4: Definición de la expresión regular (regex) para el tiempo.
Regex para formato de tiempo HH/ MM/ SS:
[0-24]{2}\:[0-60]{2}\:[0-60]{2}.
Python3
# define time pattern time_pattern = r'([0-24]{2}\:[0-60]{2}\:[0-60]{2})'
Paso 5: busque el tiempo y asigne a la columna respectiva en el marco de datos.
Para buscar el tiempo usando expresiones regulares en una string, estamos usando la función re.search() de la biblioteca re .
Python3
# searching the entire DataFrame # with Time pattern for row in range(0, len(data)): time = re.search(time_pattern, data.iat[row,index_set]).group() data.iat[row, index_time] = time print("Final DataFrame") data
Producción:
Código completo:
Python3
# importing required module import pandas as pd; import re; data = pd.read_excel("time_sample_data.xlsx"); print("Original DataFrame") print(data) # Create column for Date data['New time']= None print(data) # set index index_set= data.columns.get_loc('Description') index_time=data.columns.get_loc('New time') print(index_set,index_time) # define the time pattern in HH:MM:SS time_pattern= r'([0-24]{2}\:[0-60]{2}\:[0-60]{2})' #searching dataframe with time pattern for row in range(0, len(data)): time= re.search(time_pattern,data.iat[row,index_set]).group() data.iat[row,index_time] = time print("\n Final DataFrame") data
Producción:
Nota: antes de ejecutar este programa, asegúrese de haber instalado la biblioteca xlrd en su entorno de Python.
Publicación traducida automáticamente
Artículo escrito por kumar_satyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA