Pandas에서 범위별로 조인/병합하는 가장 좋은 방법
데이터 분석에서는 다음을 기반으로 데이터 프레임을 조인하거나 병합해야 하는 것이 일반적입니다. 특정 범위 조건. 한 가지 접근 방식은 더미 열과 교차 조인을 사용하는 것이지만 이는 비효율적이고 복잡할 수 있습니다. 더 우아하고 효율적인 솔루션은 numpy 브로드캐스팅을 활용하는 것입니다.
numpy 브로드캐스팅
Numpy 브로드캐스팅을 사용하면 다양한 모양의 배열 간에 요소별 작업을 수행할 수 있습니다. 이는 데이터 프레임의 어느 값이 지정된 범위 조건을 충족하는지 결정하는 데 활용될 수 있습니다.
설정
두 개의 데이터 프레임을 고려하십시오. A_id 및 A_value 열이 있는 A와 열이 있는 B 열 B_id, B_low 및 B_high. A_값이 B_low와 B_high 사이에 있도록 A와 B를 결합하려고 합니다.
구현
<code class="python">import numpy as np # Convert dataframes to arrays a = A.A_value.values bh = B.B_high.values bl = B.B_low.values # Determine matching rows and columns i, j = np.where((a[:, None] >= bl) & (a[:, None] <= bh)) # Join corresponding rows from A and B joined = pd.concat([ A.loc[i, :].reset_index(drop=True), B.loc[j, :].reset_index(drop=True) ], axis=1) # Print joined dataframe print(joined)</code>
이 방법은 요소별 비교와 브로드캐스팅을 활용하여 효율적으로 식별합니다. 범위 조건을 만족하는 A와 B의 행을 결합합니다. 루프나 더미 열이 필요하지 않아 우아하면서도 효율적입니다.
위 내용은 Pandas의 범위 조건을 기반으로 DataFrame을 효율적으로 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!