Pandas 데이터프레임 머지

Pandas 데이터프레임 머지하기

Pandas
Pandas 데이터프레임을 머지하는 방법을 정리합니다.
Author

gabriel yang

Published

September 11, 2023

테이터프레임 머지하기

병합은 서로다른 데이터프레임 객체에 동일하게 존재하는 값을 통해 양쪽 데이터를 연관 지어 하나의 데이터프레임으로 모델링할 수 있는 유용한 방법입니다. 연습을 위해서 데이터를 준비합니다.

Yahoo Finance에서는 미국뿐 아니라 한국 주식에 대한 정보를 제공합니다. KOSPI주식 정보를 csv형태로 저장해서 데이터프레임 머지 연습에 사용할께요. Yahoo Finance로 이동해서 historica l data 탭을 선택합니다.

Historical Data 를 선택하면 위와 같이 KOSPI 에 대한 시계열 데이터를 얻을 수 있습니다. download를 눌러 다운로드하여 저장합니다. 혹은 [KS11.csv]에서 다운로드 하세요.

데이터 로드하기

csv파일을 불러와서 데이터프레임 형태를 확인합니다. 시계열데이터의 경우 날짜정보를 데이터프레임의 index로 사용하면 편리합니다. data컬럼을 index로 설정합니다.

import pandas as pd
kospi = pd.read_csv("./^KS11.csv", index_col ='Date')
kospi.head()

날짜정보가 index로 설정된 데이터프레임을 생성했습니다. 이제 연결을 위한 새로운 데이터프레임을 생성합니다. 데이트 프레임을 연결할 정보를 Ticker라는 컬럼으로 설정하고 기존 데이터프레임의 Volume컬럼을 추가합니다.

kospi_volume = pd.DataFrame ({'Ticker': 'kospi', 'Volume' : kospi['Volume']})
kospi_volume.head()

2개의 데이터프레임이 함께 갖는 컬럼인 ’Ticker’를 통해서 병합을 진행하고 이를 통해서 Volume정보를 추가하려고 합니다. 올바르게 동작하는 지 확인하기 위해서 기존 데이터프레임의 Volume 컬럼을 삭제합니다.

kospi['Ticker'] = 'kospi'
kospi.pop('Volume')
kospi.head()

Volume컬럼이 삭제되었으니 병합을 진행합니다. pd.merge()함수를 사용하고 공통 컬럼인 Ticker컬럼을 전달합니다.

merged_df = pd.merge(kospi, kospi_volume, on='Ticker')
merged_df.head()

이제 새로운 merged_df 데이터프레임은 2개의 데이터프레임을 연결하여 Volume정보를 추가 하였습니다.