Requisito previo: expresión regular en Python
En este artículo, veremos cómo extraer la puntuación utilizada en la columna especificada del Dataframe usando Regex.
En primer lugar, estamos creando una expresión regular que contiene todos los signos de puntuación: [!”\$%&\'()*+,\-.\/:;=#@?\[\\\]^_`{|} ~]* Luego, estamos pasando cada fila de columna específica a la función re.findall() para extraer la puntuación y luego asignar esa puntuación extraída a una nueva columna en un marco de datos.
La función re.findall() se usa para extraer todas las coincidencias no superpuestas del patrón en una string, como una lista de strings. La string se escanea de izquierda a derecha y las coincidencias se devuelven en el orden encontrado.
Sintaxis: re.findall(regex, string)
Retorno: todas las coincidencias no superpuestas del patrón en la string, como una lista de strings.
Ahora, vamos a crear un marco de datos:
Python3
# import required libraries import pandas as pd import re # creating Dataframe with # name and their comments df = pd.DataFrame({ 'Name' : ['Akash', 'Ashish', 'Ayush', 'Diksha' , 'Radhika'], 'Comments': ['Hey! Akash how r u' , 'Why are you asking this to me?' , 'Today, what we are going to do.' , 'No plans for today why?' , 'Wedding plans, what are you saying?']}, columns = ['Name', 'Comments'] ) # show the Dataframe df
Producción:
Ahora, extrayendo la puntuación del comentario de la columna:
Python3
# define a function for extracting # the punctuations def check_find_punctuations(text): # regular expression containing # all punctuation result = re.findall(r'[!"\$%&\'()*+,\-.\/:;=#@?\[\\\]^_`{|}~]*', text) # form a string string = "".join(result) # list of strings return return list(string) # creating new column name # as a punctuation_used and # applying user defined function # on each rows of Comments column df['punctuation_used'] = df['Comments'].apply( lambda x : check_find_punctuations(x) ) # show the Dataframe df
Producción: