> 백엔드 개발 > 파이썬 튜토리얼 > Pandas 부울 인덱싱: `and` 대신 `&`를 사용하는 이유는 무엇입니까?

Pandas 부울 인덱싱: `and` 대신 `&`를 사용하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-17 21:20:19
원래의
116명이 탐색했습니다.

Pandas Boolean Indexing: Why Use `&` Instead of `and`?

Pandas의 부울 인덱싱을 위한 논리 연산자

Pandas에서 부울 인덱싱을 수행할 때 논리 연산자 &(비트 AND)와 및( 논리 AND).

부울에 & over 및 over를 사용하는 이유 인덱싱?

다음 예를 고려하세요.

a = pd.DataFrame({'x': [1, 1], 'y': [10, 20]})

a[(a['x'] == 1) & (a['y'] == 10)]
로그인 후 복사

이 코드는 예상된 결과를 반환합니다.

    x   y
0   1  10
로그인 후 복사

그러나 & 대신 and를 사용하면 오류가 발생합니다:

a[(a['x'] == 1) and (a['y'] == 10)]
로그인 후 복사
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
로그인 후 복사

이해하기 오류

이 오류는 각 시리즈의 진실성을 개별적으로(a['x'] 및 a['y']) 평가하려고 시도하기 때문에 발생합니다. 그러나 이러한 시리즈에는 명확한 부울 값이 없으므로 모호한 진리값 오류가 발생합니다.

반면 비트 & 연산자는 요소별 논리 연산을 수행합니다. 각 요소가 a['x']와 a['y']의 해당 요소 사이의 연산 결과를 나타내는 부울 배열을 반환합니다. 이를 통해 인덱싱을 위한 부울 마스크를 생성할 수 있습니다.

괄호: 필수 요구 사항

&를 사용할 때는 괄호를 반드시 사용해야 합니다. 이것이 없으면 ==보다 &의 연산자 우선순위가 높기 때문에 작업이 잘못 평가됩니다.

a['x'] == 1 & a['y'] == 10  # Incorrect: Triggers the error

(a['x'] == 1) & (a['y'] == 10)  # Correct: Boolean indexing works as expected
로그인 후 복사

결론

Pandas에서 부울 인덱싱을 수행할 때 항상 & 연산자를 사용하세요. 요소별 논리 연산. 이는 적절한 평가를 보장하고 모호한 진리값 오류를 방지합니다.

위 내용은 Pandas 부울 인덱싱: `and` 대신 `&`를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿