¿Cómo extraer datos de tiempo de una columna de archivo de Excel usando Pandas?

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *