如何使用 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
广告