>  기사  >  백엔드 개발  >  Numpy Broadcasting을 사용하여 Pandas에서 범위 기반 조인을 효율적으로 수행하는 방법은 무엇입니까?

Numpy Broadcasting을 사용하여 Pandas에서 범위 기반 조인을 효율적으로 수행하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-30 19:53:31708검색

How to Efficiently Perform Range-Based Joins in Pandas Using Numpy Broadcasting?

Pandas에서 범위 기반 조인을 위한 가장 효과적인 방법

pandas 데이터 프레임으로 작업할 때 범위 기반 조인을 수행해야 합니다(병합 )은 일반적인 작업입니다. 이 문제를 해결하기 위해 다양한 접근 방식이 제안되었으며 각각 고유한 장점과 단점이 있습니다. 그러나 가장 우아하고 효율적인 방법은 numpy 브로드캐스팅을 활용하는 것입니다.

A_값이 B_low 및 B_high에서 지정한 범위 내에 속하는 조건을 기반으로 내부 조인을 목표로 하는 데이터프레임 A와 B를 생각해 보세요.

이를 달성하기 위해 우리는 numpy의 기능을 활용하여 A_value의 각 요소가 범위 기준을 충족하는지 확인합니다. 이는 B 범위의 하한 및 상한(B_low 및 B_high)에 대해 A_value 값을 브로드캐스팅함으로써 수행됩니다.

결과는 i와 j라는 두 개의 배열입니다. 여기서 i는 일치하는 A_value의 인덱스를 보유합니다. A의 요소와 j는 B의 해당 인덱스를 보유합니다. 이러한 인덱스를 결합하면 두 데이터 프레임에서 원하는 행을 검색하고 이를 연결하여 병합된 데이터 프레임을 생성할 수 있습니다.

다음은 이 접근 방식에 대해 업데이트된 코드입니다. :

<code class="python">import numpy as np

a = A.A_value.values
bh = B.B_high.values
bl = B.B_low.values

i, j = np.where((a[:, None] >= bl) &amp; (a[:, None] <= bh))

pd.concat([
    A.loc[i, :].reset_index(drop=True),
    B.loc[j, :].reset_index(drop=True)
], axis=1)</code>

이 방법은 효율적인 솔루션을 제공할 뿐만 아니라 내부 및 왼쪽 조인을 모두 우아하게 처리합니다. 매개변수를 조정하여 다양한 조인 시나리오에 쉽게 적용할 수 있습니다.

위 내용은 Numpy Broadcasting을 사용하여 Pandas에서 범위 기반 조인을 효율적으로 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.