반응형
Pandas에서 str.contains () 함수를 사용하여 한 번에 두 개의 부분 문자열을 검색하는 더 효율적인 방법이 있는지 궁금합니다. "nt"또는 "nv"가 포함 된 데이터에 대한 데이터 프레임의 특정 열을 검색하고 싶습니다. 지금 내 코드는 다음과 같습니다.
df[df['Behavior'].str.contains("nt", na=False)]
df[df['Behavior'].str.contains("nv", na=False)]
그런 다음 한 결과를 다른 결과에 추가합니다. 제가하고 싶은 것은 한 줄의 코드를 사용하여 "nt"OR "nv"OR "nf"를 포함하는 데이터를 검색하는 것입니다. 나는 용어 사이에 파이프를 붙이는 것을 포함하여 내가 작동해야한다고 생각한 몇 가지 방법을 가지고 놀았지만,이 모든 것이 오류를 초래합니다. 문서를 확인했지만 이것이 옵션으로 보이지 않습니다. 다음과 같은 오류가 발생합니다.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-113-1d11e906812c> in <module>()
3
4
----> 5 soctol = f_recs[f_recs['Behavior'].str.contains("nt"|"nv", na=False)]
6 soctol
TypeError: unsupported operand type(s) for |: 'str' and 'str'
이를 수행하는 빠른 방법이 있습니까? 도움을 주셔서 감사합니다. 저는 초보자이지만 데이터 랭 글링을 위해 팬더를 좋아합니다.
해결 방법
은 하나의 정규 표현식이며 하나의 문자열에 있어야합니다.
"nt|nv" # rather than "nt" | " nv"
f_recs[f_recs['Behavior'].str.contains("nt|nv", na=False)]
Python에서는 문자열에 or ( |
) 연산자를 사용할 수 없습니다.
In [1]: "nt" | "nv"
TypeError: unsupported operand type(s) for |: 'str' and 'str'
참조 페이지 https://stackoverflow.com/questions/19169649
반응형
'파이썬' 카테고리의 다른 글
파이썬 전역 변수가 왜 나쁜가요? (0) | 2021.01.05 |
---|---|
파이썬 Windows 8에 netCDF4를 설치하려고 할 때 "Python 버전 2.7 필요, 레지스트리에 없음"오류 발생 (0) | 2021.01.05 |
파이썬 Python에서 OpenCV를 사용하여 이미지 분할 (0) | 2021.01.05 |
파이썬에서 "필터"객체의 길이를 찾는 방법 (0) | 2021.01.05 |
파이썬 defaultdict의 중첩 된 defaultdict (0) | 2021.01.05 |
댓글