Requisito previo: expresiones regulares en Python
En este artículo, veamos cómo extraer la fecha del archivo de Excel. Supongamos que nuestro archivo de Excel se parece a la imagen dada a continuación, entonces tenemos que extraer la fecha de la string y almacenarla en una nueva columna de Marco de datos.
Para ver el archivo de Excel, haga clic aquí .
Acercarse :
- Importar módulo requerido.
- Importar datos desde un archivo de Excel.
- Haga una columna adicional para una nueva fecha.
- Establecer índice para la búsqueda.
- Defina el patrón de formato de fecha.
- Fecha 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
# import required module import pandas as pd; import re; # Read excel file and store in to DataFrame data = pd.read_excel("date_sample_data.xlsx"); print("Original DataFrame") data
Producción:
Paso 2: haga una columna adicional para una nueva fecha.
Python3
# Create column for Date data['new_Date']= None data
Producción:
Paso 3: establezca el índice para la búsqueda.
Python3
# set required index index_set = data.columns.get_loc('Description') index_date = data.columns.get_loc('new_Date') print(index_set, index_date)
Producción:
1 2
Paso 4: Definición del patrón del formato de fecha.
Necesitamos crear una expresión regular para el patrón de fecha en formato DD/MM/YY . Use la expresión [0-9] para encontrar cualquier carácter entre corchetes que sea un dígito. Use la secuencia de escape «\» para escapar «/» un símbolo especial y {2} , {4} se usa para indicar el número de veces que un carácter pertenece a la string dada. Entonces la expresión se convierte en ‘[0-9]{2}\/[0-9]{2}\/[0-9]{4}’ .
Ejemplo:
02/04/2020 02 -----> [0 to 9] --> [0-9] number of character inside the string {2} ( i.e DD) 04- ----> [0 to 9] --> [0-9] number of character inside the string {2} ( i.e MM) 2020 -->[0 to 9] -->[0-9] number of character inside the sting {4} ( i.e YYYY)
Python3
# In DD/MM/YYYY date_pattern = r'([0-9]{2}\/[0-9]{2}\/[0-9]{4})'
Paso 5: busque la fecha y asigne a la columna respectiva en el marco de datos.
Para buscar la fecha usando expresiones regulares en una string, estamos usando la función re.search() de la biblioteca re .
Python3
for row in range(0, len(data)): Date = re.search(date_pattern,data.iat[row,index_set]).group() data.iat[row, index_date] = Date # show the Dataframe data
Producción:
Código completo:
Python3
# importing required module import pandas as pd; import re; data = pd.read_excel("date_sample_data.xlsx"); print("Original data : \n", data) # Create column for Date data['new_Date'] = None # set index index_set = data.columns.get_loc('Description') index_date = data.columns.get_loc('new_Date') print(index_set, index_date) # define pattern for date # in DD/MM/YYYY date_pattern = r'([0-9]{2}\/[0-9]{2}\/[0-9]{4})' # searching pattern # And storing in to DataFrame for row in range(0, len(data)): Date = re.search(date_pattern, data.iat[row,index_set]).group() data.iat[row, index_date] = Date # show the 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