데이터 조작에 널리 사용되는 Python 라이브러리인 Pandas는 DataFrames 및 Series 개체를 필터링하는 효율적인 방법을 제공합니다. 여러 필터를 연속적으로 적용해야 하는 경우 불필요한 데이터 복사를 피하기 위해 프로세스를 최적화하는 것이 중요합니다.
reindex()를 사용하는 기존 방법은 데이터 중복 및 대규모 데이터 세트에는 비효율적입니다. Pandas 및 NumPy의 기능인 부울 인덱싱은 더 빠른 대안을 제공합니다.
다음 예를 고려하세요.
<code class="python">import pandas as pd df = pd.DataFrame({'col1': [0, 1, 2], 'col2': [10, 11, 12]}) def b(x, col, op, n): return op(x[col],n) def f(x, *b): return x[(np.logical_and(*b))] b1 = b(df, 'col1', ge, 1) b2 = b(df, 'col1', le, 1) filtered_df = f(df, b1, b2)</code>
이 접근 방식은 부울 인덱싱을 사용하여 필터링 작업을 효율적으로 수행합니다. b 함수는 부울 계열 객체를 생성하고 f 함수는 NumPy의 논리 연산자를 사용하여 이를 결합합니다. 결과는 지정된 기준을 충족하는 행만 포함하는 새로운 DataFrame입니다.
Pandas 버전 0.13 이상에서는 쿼리 방법이 명시적으로 쿼리 방법에 대한 대안을 제공합니다. 부울 시리즈를 결합합니다. 효율적인 평가를 위해 NuMexpr을 활용하고 더 간단한 구문을 제공합니다.
<code class="python">filtered_df = df.query('col1 <= 1 & 1 <= col1')</code>
Series 객체에 대해 설명된 기술은 DataFrames로 쉽게 확장될 수 있습니다. 적용하는 모든 필터는 원본 DataFrame에서 작동하여 결과를 점진적으로 좁힙니다.
부울 인덱싱과 Pandas의 최적화된 알고리즘을 활용하면 성능 저하 없이 데이터 구조에 여러 필터를 효율적으로 적용할 수 있습니다.
위 내용은 부울 인덱싱을 사용하여 Pandas 데이터 구조를 효율적으로 필터링하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!