입력 − 시리즈가 있다고 가정합니다.
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