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

Mary-Kate Olsen
풀어 주다: 2024-10-30 12:18:02
원래의
864명이 탐색했습니다.

How to Efficiently Join DataFrames Based on Range Conditions in Pandas?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿