从给定的Pandas系列中过滤出至少包含两个元音的单词

从给定的Pandas系列中过滤出至少包含两个元音的单词

在这篇文章中,我们如何从一个给定的系列中过滤出包含两个或更多元音的词。在这里,我们将看到两种可以实现这一目标的方法。
示例 1:
在这个例子中,我们将使用map()函数来循环浏览该系列,并检查每个单词的元音数是否大于或等于2。 map基本上用于循环浏览该系列,Counter用于计算每个单词中的元音数。

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])
Python

输出:

从给定的Pandas系列中过滤出至少包含两个元音的单词

示例 2:
在这个例子中,我们将使用Series.str.count()函数与regex来循环浏览系列,并检查每个单词的元音数是否大于或等于2。(?i)用于启动不区分大小写的模式,将大写字符转换为小写字符。我们需要将大写字母转换为小写字母,因为对于元音来说,我们要与小写元音进行比较,所以每当大写元音出现时,比如在Apple中,我们需要将’A’转换为小写字母以进行正确的比较。

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])
Python

输出:

从给定的Pandas系列中过滤出至少包含两个元音的单词

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册