에러 메세지
ValueError: pattern contains no capture groups
번역: 패턴에 캡처 그룹이 없습니다.
이 오류는 str.extract 함수에서 추출할 패턴을 지정할 때, 캡처 그룹이 없기 때문에 발생합니다. str.extract는 추출할 부분을 소괄호로 명확히 지정해야 합니다.
에러 발생 상황
다음은 에러가 발생하는 상황을 예시와 함께 살펴보겠습니다.
import pandas as pd
s = pd.Series(['cat', 'category', 'dog', 'recatch'])
s
0 cat
1 category
2 dog
3 recatch
dtype: object
이 시리즈에서 'cat'이라는 단어만 추출하려면 str.extract 함수를 사용할 수 있습니다. 그러나 아래와 같이 코드를 작성하면 에러가 발생합니다.
# 패턴에 소괄호가 없는 잘못된 코드: 에러 발생
s.str.extract('cat')
ValueError: pattern contains no capture groups
해결 방법
이 오류가 발생하는 이유는 str.extract 함수에서 추출할 그룹에 대한 명시적인 지정이 필요하기 때문입니다. 추출할 부분을 소괄호로 묶어 캡처 그룹을 지정해야 합니다.
s.str.extract('(cat)')
output:
위와 같이, 소괄호로 'cat'을 묶어주면 str.extract()가 캡처 그룹을 인식하여 'cat'을 추출할 수 있습니다.
결론
ValueError: pattern contains no capture groups 오류는 str.extract 등의 함수에서 추출할 패턴을 명시하지 않았기 때문에 발생합니다. 이 오류를 해결하려면, 추출할 패턴을 소괄호로 묶어 캡처 그룹을 지정해야 합니다. 이 방법을 사용하면 원하는 패턴을 정확히 추출할 수 있습니다.
교보문고 구매 페이지, 알라딘 구매 페이지, yes24 구매 페이지
유튜브에서 판다스 강의 중입니다
https://www.youtube.com/@KimPandas
'여러 가지 이야기 > 에러 모음' 카테고리의 다른 글
[pandas] AttributeError: 'DataFrame' object has no attribute 'append' (0) | 2024.02.11 |
---|---|
TypeError: 'TimeGrouper' object is not callable (0) | 2023.08.23 |
TypeError: unhashable type: 'set' (0) | 2023.08.07 |
OverflowError: Python int too large to convert to C long (0) | 2023.08.07 |
TypeError: '<' not supported between instances of 'str' and 'int' (0) | 2023.08.07 |