En este artículo, veamos cómo extraer la columna de correo electrónico de un archivo de Excel y averiguar el tipo de correo usando Pandas. Supongamos que nuestro archivo de Excel se parece a la imagen dada a continuación, y luego tenemos que almacenar diferentes tipos de correos electrónicos en diferentes columnas de Dataframe.
Para ver el archivo de Excel, haga clic aquí
Acercarse:
- Importar módulo requerido.
- Importar datos desde un archivo de Excel.
- Cree una columna adicional para cada correo electrónico diferente.
- Establezca cada índice requerido para la búsqueda.
- Defina el patrón del correo electrónico.
- Busque el correo electrónico y asigne 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("Email_sample.xlsx"); # show the dataframe data
Producción:
Paso 2: haga una columna adicional para cada correo electrónico diferente.
Python3
data['Google-mail'] = None data
Producción:
Python3
data['Yahoo-mail'] = None data
Producción :
Paso 3: Configure cada índice requerido para la búsqueda.
Python3
# set required index index_set = data.columns.get_loc('E-mail') index_gmail = data.columns.get_loc('Google-mail') index_yahoo = data.columns.get_loc('Yahoo-mail') print(index_set, index_gmail, index_yahoo)
Producción:
1 2 3
Paso 4: Definición del patrón del correo electrónico.
Python3
# define pattern of Email google_pattern = r'gmail.com' yahoo_pattern = r'yahoo.com'
Paso 5: buscar el correo electrónico y asignarlo a la columna respectiva en el marco de datos.
Python3
# Search the Email in DataFrame and store for row in range(0, len(data)): if re.search(google_pattern, data.iat[row, index_set]) == None : data.iat[row,index_gmail] = 'Account not belongs to Google' else: gmail = re.search(google_pattern, data.iat[row, index_set]).group() data.iat[row,index_gmail] = "Google-Mail" if re.search(yahoo_pattern, data.iat[row, index_set]) == None : data.iat[row,index_yahoo] = 'Account not belongs to Yahoo' else: yahoo = re.search(yahoo_pattern, data.iat[row, index_set]).group() data.iat[row,index_yahoo] = "Yahoo-Mail" data
Producción:
Código completo:
Python3
# importing required module import pandas as pd import re # Creating df # Reading data from Excel data = pd.read_excel("Email_sample.xlsx") print("Original DataFrame") print(data) # Create column for # each type of Email data['Google-mail'] = None data['Yahoo-mail'] = None # set index index_set = data.columns.get_loc('E-mail') index_gmail = data.columns.get_loc('Google-mail') index_yahoo = data.columns.get_loc('Yahoo-mail') # define Email pattern google_pattern = r'gmail.com' yahoo_pattern = r'yahoo.com' # Searching the email # Store into DataFrame for row in range(0, len(data)): if re.search(google_pattern, data.iat[row, index_set]) == None: data.iat[row, index_gmail] = 'Account not belongs to Google' else: gmail = re.search(google_pattern, data.iat[row, index_set]).group() data.iat[row, index_gmail] = "Google-Mail" if re.search(yahoo_pattern, data.iat[row, index_set]) == None: data.iat[row, index_yahoo] = 'Account not belongs to Yahoo' else: yahoo = re.search(yahoo_pattern, data.iat[row, index_set]).group() data.iat[row, index_yahoo] = "Yahoo-Mail" 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