날짜를 기준으로 여러 데이터 프레임 병합
날짜 열은 동일하지만 행과 열의 개수가 다른 여러 데이터 프레임이 있습니다. 목표는 이러한 데이터프레임을 병합하여 각 날짜가 모든 데이터프레임에 공통되는 행을 얻는 것입니다.
비효율적인 재귀 접근 방식
재귀 함수를 사용하여 데이터 프레임을 병합하려는 시도 결함이 있습니다. 함수는 동일한 입력으로 계속 자신을 호출하기 때문에 무한 루프에 들어갑니다. 이 접근 방식은 비효율적이며 오류가 발생하기 쉽습니다.
reduce를 사용한 최적화된 솔루션
여러 데이터 프레임을 병합하는 더 효율적인 방법은 functools 모듈의 축소 기능을 사용하는 것입니다. 이 함수는 지정된 병합 작업을 인접한 데이터 프레임 쌍에 반복적으로 적용하여 데이터 프레임 목록을 단일 데이터 프레임으로 줄입니다.
다음 코드 조각은 이 접근 방식을 보여줍니다.
import pandas as pd from functools import reduce dfs = [df1, df2, df3] # list of dataframes df_merged = reduce(lambda left, right: pd.merge(left, right, on='date', how='outer'), dfs)
이 코드에서 , 축소 함수는 인접한 데이터 프레임 쌍을 반복적으로 병합하여 dfs 목록을 단일 데이터 프레임으로 줄입니다. on='date' 매개변수는 날짜 열을 기준으로 병합이 수행되어야 함을 지정합니다. How='outer' 매개변수는 두 데이터프레임의 모든 행이 동일한 날짜를 공유하지 않더라도 병합된 결과에 포함되도록 보장합니다.
reduce 함수의 장점
리듀스 기능을 사용하면 여러 가지 장점이 있습니다.
예
제공된 데이터 프레임 df1, df2 및 df3을 사용하면 다음과 같은 병합된 데이터 프레임을 얻을 수 있습니다.
DATE VALUE1 VALUE2 VALUE3 0 May 15, 2017 1901.00 2902.00 3903.00
이 데이터프레임에는 세 가지 입력 데이터프레임 모두에 공통적인 날짜가 있는 행만 포함되어 있습니다.
위 내용은 공통 날짜 열을 기반으로 여러 데이터프레임을 효율적으로 병합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!