¿Cómo extraer la fecha del archivo de Excel usando Pandas?

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.

date_sample_data.xlsx

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

Deja una respuesta

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