> 백엔드 개발 > 파이썬 튜토리얼 > 범위 조건을 기반으로 Pandas DataFrame을 효율적으로 병합하는 방법은 무엇입니까?

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

Susan Sarandon
풀어 주다: 2024-10-29 11:06:30
원래의
502명이 탐색했습니다.

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

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