Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python Pandas를 사용하여 주어진 시리즈의 각 단어에 있는 둘 이상의 특수 문자에 대한 총 개수를 찾는 방법은 무엇입니까?

<시간/>

입력 − 시리즈가 있다고 가정합니다.

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

입력 − 시리즈에서 하나 이상의 특수 문자에 대한 총 카운트 수에 대한 결과는 2입니다.

이 질문에 대한 다른 해결책을 찾아보도록 합시다.

해결책 1

이 문제를 해결하기 위해 다음 단계를 따릅니다. -

  • 시리즈 정의

  • 특수 문자 값 목록을 만듭니다.

  • 특수문자의 초기값과 총 특수문자 개수 값을 0으로 설정합니다.

  • for 루프를 생성하고 Series의 모든 값에 하나씩 접근하고 다음과 같이 특수 문자를 기반으로 값을 비교하는 if 조건을 생성합니다 -

for i in data:
   chars_count = 0
   for j in list(i):
      if j in special_char:
         chars_count = chars_count+1
  • if 조건을 설정하고 카운트 값을 확인하십시오. count> 1이면 총 개수를 인쇄합니다.

    아래에 정의되어 있습니다 -

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

해결책 2

또는 정규식 및 람다 함수 필터 방법을 사용하여 총 개수를 찾을 수 있습니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. -

  • 시리즈 정의

  • 람다 필터 방법을 적용하여 특수 문자()를 기반으로 입력의 유효성을 검사합니다.

  • 길이가 하나 이상임을 찾으십시오. 아래에 정의되어 있습니다 -

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