Pandas에서 부울 인덱싱을 수행할 때 논리 연산자 &(비트 AND)와 및( 논리 AND).
다음 예를 고려하세요.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!