Filtrar palabras de una serie de Pandas que contengan al menos dos vocales

En este artículo, cómo podemos filtrar las palabras de una serie dada que contienen dos o más vocales. Aquí veremos dos formas en las que podemos lograr esto.
Ejemplo 1:
En este ejemplo, usaremos la función map() para recorrer la serie y verificar para cada palabra si el recuento de vocales es mayor o igual a dos. map se usa básicamente para recorrer la serie y Counter se usa para contar el número de vocales en cada palabra. 
 

Python3

import pandas as pd
from collections import Counter
 
# creating a series of words
series = pd.Series(['Apple', 'Banana', 'Cherry',
                    'Plum', 'Orange', 'Fig', 'Melon'])
 
print("Original Series:")
print(series)
print("\nWords containing atleast 2 vowels")
 
# mapping through the series and checking if count of vowels is >=2
result = series.map(lambda c: sum([Counter(c.lower()).get(i, 0)
                                   for i in list('aeiou')]) >= 2)
 
print(series[result])

Producción:
 

Ejemplo 2:
En este ejemplo, usaremos la función Series.str.count() con expresiones regulares para recorrer la serie y verificar cada palabra si el recuento de vocales es mayor o igual a dos. (?i) se utiliza para iniciar el modo que no distingue entre mayúsculas y minúsculas, para convertir el carácter en mayúsculas en caracteres en minúsculas. Necesitamos convertir caracteres en mayúsculas a minúsculas porque para las vocales estamos comparando con vocales en minúsculas, por lo que cada vez que aparece una vocal en mayúsculas como en Apple , necesitamos convertir ‘A’ en minúsculas para una comparación adecuada. 
 

Python3

import pandas as pd
from collections import Counter
 
# creating a series of words
series = pd.Series(['Apple', 'Banana', 'Cherry',
                    'Plum', 'Orange', 'Fig', 'Melon'])
 
print("Original Series:")
print(series)
print("\nWords containing atleast 2 vowels")
 
# mapping through the series and checking
# if count of vowels is >=2
result = series[series.str.count('(?i)[aeiou]') >=2]
 
print(series[result])

Producción:
 

Publicación traducida automáticamente

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