Extraiga la puntuación de la columna especificada de Dataframe usando Regex

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:

Publicación traducida automáticamente

Artículo escrito por hupphurr 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 *