如何使用 Python Pandas 查找给定序列中每个单词中出现多个特殊字符的总计数?


输入 - 假设你有一个序列,

0       fruits!!
1       *cakes*
2       $nuts
3       #drinks
dtype: object

输入 - 序列中出现多个特殊字符的总计数结果为 2。

让我们尝试找到这个问题的不同解决方案。

方案 1

为了解决这个问题,我们将遵循以下步骤:

  • 定义一个序列

  • 创建特殊字符列表。

  • 将特殊字符的初始值和特殊字符总数设置为 0。

  • 创建一个 for 循环,逐个访问序列中的所有值,并创建一个 if 条件来根据特殊字符比较值,如下所示:

for i in data:
   chars_count = 0
   for j in list(i):
      if j in special_char:
         chars_count = chars_count+1
  • 设置 if 条件并检查计数值。如果计数 > 1,则打印总计数。

    定义如下:

if(chars_count>1):
   total_count = total_count+1
      print(total_count)

方案 2

或者,我们可以使用正则表达式和 lambda 函数 filter 方法来查找总计数。

为了解决这个问题,我们将遵循以下步骤:

  • 定义一个序列

  • 应用 lambda filter 方法根据特殊字符()验证输入。

  • 查找长度是否大于一。定义如下:

l=["fruits!!","*cakes*","$nuts","#drinks"]
               data=pd.Series(filter(lambda
x:1<len(re.findall(r"\W",x)),l))

示例

让我们看看实现以获得更好的理解:

import pandas as pd
import string
l = ["Fruits!!","*Cakes*","$Nuts","#Drinks"]
data = pd.Series(l)
chars=string.punctuation
special_char=list(chars)
total_count = 0
for i in data:
   chars_count = 0
   for j in list(i):
      if j in special_char:
         chars_count = chars_count+1
   if(chars_count>1):
      total_count = total_count+1
print(total_count)

方案 3

示例

import pandas as pd
import re
l=["fruits!!","*cakes*","$nuts","#drinks"]
data=pd.Series(filter(lambda x:1<len(re.findall(r"\W",x)),l))
print("count:",len(data))

输出

上述程序的输出如下:

2

更新于:2021年2月10日

566 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告