>  기사  >  백엔드 개발  >  복잡한 반복자 없이 공통 열을 기반으로 여러 DataFrame을 어떻게 효율적으로 병합할 수 있나요?

복잡한 반복자 없이 공통 열을 기반으로 여러 DataFrame을 어떻게 효율적으로 병합할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-21 09:05:11886검색

How can you efficiently merge multiple DataFrames based on a common column without complex iterators?

여러 데이터프레임 병합

문제 설명

여러 데이터프레임을 병합하는 것은 어려운 작업이 될 수 있으며, 특히 데이터프레임이 다양한 경우 더욱 그렇습니다. 모양과 구조. 가장 일반적인 접근 방식은 merge() 함수를 반복적으로 사용하는 것인데, 이는 많은 수의 데이터 프레임에 대해 복잡해지고 읽을 수 없게 될 수 있습니다.

질문

여러 데이터 프레임을 어떻게 병합할 수 있습니까? 재귀나 복잡함을 사용하지 않고 공통 열을 기반으로 효율적이고 우아하게 데이터 프레임을 생성합니다. 반복자?

답변

reduce() 함수는 여러 데이터프레임을 병합하기 위한 재귀의 대안을 제공합니다. Reduce() 함수는 항목 목록에 함수를 반복적으로 적용하여 단일 값으로 줄입니다. 이 경우 함수는 merge() 함수이고 항목 목록은 데이터프레임 목록입니다.

import pandas as pd
from functools import reduce

# Load dataframes
df1 = pd.read_csv('dataframe1.csv')
df2 = pd.read_csv('dataframe2.csv')
df3 = pd.read_csv('dataframe3.csv')

# Create a list of dataframes
dataframes = [df1, df2, df3]

# Merge dataframes
df_merged = reduce(lambda left, right: pd.merge(left, right, on='date', how='outer'), dataframes)

설명

reduce() 함수는 pd.merge 함수를 첫 번째 인수로, 데이터프레임 목록을 두 번째 인수로 사용하여 호출됩니다. pd.merge() 함수는 두 개의 데이터프레임을 병합하고, Reduce() 함수는 결과를 목록의 다음 데이터프레임과 반복적으로 병합하여 목록을 단일 병합된 데이터프레임으로 줄입니다.

on='date' 인수는 모든 데이터프레임에 공통된 것으로 간주되는 '날짜' 열을 기반으로 병합이 수행되어야 함을 지정합니다. How='outer' 매개변수는 '날짜' 열에 해당하는 값이 있는지 여부에 관계없이 두 데이터프레임의 모든 행이 병합된 데이터프레임에 포함되어야 함을 나타냅니다. 이렇게 하면 날짜 값이 동일한 모든 행이 단일 행으로 병합됩니다.

결과

이제 df_merged 변수에는 다음의 모든 데이터가 포함된 병합된 데이터 프레임이 포함됩니다. 개별 데이터프레임. 각 데이터프레임의 해당 행은 '날짜' 열을 기준으로 정렬됩니다. 이 방법은 효율적이고 유연하며 읽기 쉬우므로 많은 수의 데이터프레임을 병합하는 데 이상적인 솔루션입니다.

위 내용은 복잡한 반복자 없이 공통 열을 기반으로 여러 DataFrame을 어떻게 효율적으로 병합할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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