"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 범위 조건을 기반으로 Pandas DataFrame을 효율적으로 병합하는 방법은 무엇입니까?

범위 조건을 기반으로 Pandas DataFrame을 효율적으로 병합하는 방법은 무엇입니까?

2024년 11월 21일에 게시됨
검색:902

How to Efficiently Merge Pandas DataFrames Based on a Range Condition?

Pandas에서 범위별로 조인

Pandas를 사용한 데이터 조작에서 일반적인 작업 중 하나는 범위 조건에 따라 두 개의 데이터 프레임을 병합하는 것입니다. 여기에는 특정 열의 값이 데이터 프레임 B의 지정된 범위 내에 있는 데이터 프레임 A의 행을 식별하는 작업이 포함됩니다.

이 작업에 대한 한 가지 접근 방식은 두 데이터 프레임 모두에 더미 열을 생성하고 다음을 사용하여 교차 조인을 수행하는 것입니다. 이 더미 열을 선택한 다음 범위 기준을 충족하지 않는 행을 필터링합니다. 그러나 이 방법은 대규모 데이터 세트에는 비효율적일 수 있습니다.

대체 솔루션은 배열에서 요소별 작업을 수행하는 강력한 기술인 numpy 브로드캐스팅을 활용하는 것입니다. 데이터 프레임 A와 B의 관련 열을 numpy 배열로 변환하면 논리 연산자를 적용하여 A_value를 B_low 및 B_high 값과 비교하여 범위 조건을 충족하는 행을 식별할 수 있습니다.

import numpy as np

# Convert to numpy arrays
a = A.A_value.values
bh = B.B_high.values
bl = B.B_low.values

# Find intersecting indices
i, j = np.where((a[:, None] >= bl) & (a[:, None] 

이 방법은 더미 열 접근 방식에 비해 대규모 데이터 세트에 더 큰 효율성을 제공합니다. 또한 numpy 브로드캐스트 단계에서 논리를 조정하여 왼쪽 또는 오른쪽 조인을 쉽게 구현할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3