데이터 분석에서 pandas는 데이터 프레임을 조작하고 처리하는 데 중요한 라이브러리입니다. 필터링 작업을 수행하는 동안 여러 조건을 사용할 때 연산자의 동작을 이해하는 것이 중요합니다.
'a'와 ''라는 두 열의 값을 기반으로 데이터 프레임의 행을 필터링하려는 시나리오를 고려해 보겠습니다. 비'. AND '&' 연산자와 OR '|' 사용 연산자를 사용하면 AND는 하나 이상의 값이 -1인 행을 삭제하고 OR은 두 값이 모두 -1인 행을 유지해야 합니다.
<code class="python">df = pd.DataFrame({'a': range(5), 'b': range(5)}) df['a'][1] = -1 df['b'][1] = -1 df['a'][3] = -1 df['b'][4] = -1 df1 = df[(df.a != -1) & (df.b != -1)] df2 = df[(df.a != -1) | (df.b != -1)] print(pd.concat([df, df1, df2], axis=1, keys=['original df', 'using AND (&)', 'using OR (|)',]))</code>
예기치 않게 AND 연산자는 하나 이상의 값이 있는 모든 행을 삭제합니다. 는 -1이고 OR 연산자에서는 두 값을 모두 -1로 설정해야 삭제됩니다.
이 동작을 이해하는 열쇠는 유지하려는 항목에 따라 조건을 작성한다는 점을 기억하는 것입니다. 우리가 삭제하고 싶은 것은 아닙니다.
잠재적인 문제를 방지하려면 df['a'][1] = -1 대신 df.loc 및 df.iloc와 같은 체인 액세스를 사용하는 것이 중요합니다.
위 내용은 Pandas 필터링 작업에서 AND(`&`) 및 OR(`|`) 연산자를 사용하면 예기치 않은 결과가 생성되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!