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] <= bh)) # Merge and align dataframes result = pd.concat([ A.loc[i, :].reset_index(drop=True), B.loc[j, :].reset_index(drop=True) ], axis=1) print(result)
이 방법은 다음을 제공합니다. 더미 열 접근 방식에 비해 대규모 데이터 세트의 효율성이 더 높습니다. 또한 numpy 브로드캐스팅 단계에서 로직을 조정하여 왼쪽 또는 오른쪽 조인을 쉽게 구현할 수 있습니다.
위 내용은 범위 조건을 기반으로 Pandas DataFrame을 효율적으로 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!