저번 포스팅에서 진행되었던 내용들을 그대로 끌고 오겠습니다.
(임폴트하고.. 테이블 작성하고.. 중요하지 않은 부분들이 중복되는게 보기 좋아 보이지 않네요.)
df3 테이블을 보시겠습니다.
AAPL_High | AAPL_Low | |
---|---|---|
Date | ||
2010-01-04 | 30.64 | 30.34 |
2010-01-05 | 30.80 | 30.46 |
2010-01-06 | 30.75 | 30.11 |
2010-01-07 | 30.29 | 29.86 |
2010-01-08 | 30.29 | 29.87 |
애플의 주가 정보입니다. 각 날짜의 최고가와 최저가가 적혀져 있네요.
df4 테이블을 보시겠습니다.
GOOG_High | GOOG_Low | |
---|---|---|
Date | ||
2010-01-04 | 629.511067 | 624.241073 |
2010-01-05 | 627.841071 | 621.541045 |
2010-01-06 | 625.861078 | 606.361042 |
2010-01-07 | 610.001045 | 592.651008 |
2010-01-08 | 603.251034 | 589.110988 |
구글의 주가 정보입니다. 애플 주가 정보와 같게 각 날짜의 최고가와 최저가가 적혀져 있네요.
이 두 테이블을 합쳐보려고 합니다.
테이블를 합칠때는 merge()함수를 사용하면 편한데요, 그 사용법을 알아봅시다.
1 2 | df5 = pd.merge(df3, df4, left_index=True, right_index=True) df5.head() | cs |
AAPL_High | AAPL_Low | Date_x | GOOG_High | GOOG_Low | Date_y | |
---|---|---|---|---|---|---|
Date | ||||||
2010-01-04 | 30.64 | 30.34 | 2010-01-04 | 629.511067 | 624.241073 | 2010-01-04 |
2010-01-05 | 30.80 | 30.46 | 2010-01-05 | 627.841071 | 621.541045 | 2010-01-05 |
2010-01-06 | 30.75 | 30.11 | 2010-01-06 | 625.861078 | 606.361042 | 2010-01-06 |
2010-01-07 | 30.29 | 29.86 | 2010-01-07 | 610.001045 | 592.651008 | 2010-01-07 |
2010-01-08 | 30.29 | 29.87 | 2010-01-08 | 603.251034 | 589.110988 | 2010-01-08 |
merge(df3, df4, left_index=True, right_index=True) 의 값은 위와 같습니다!
df3, df4라고 순서대로 기입한데로 결과가 나왔네요.
특이한 점은 각 테이블의 인덱스 값이 오른쪽으로 위치해있습니다.
결과적으로 날짜 정보가 3개 열이나 되는데요, 이것들을 통일시켜 봅시다.
1 2 3 4 5 | df3['Date'] = df3.index df4['Date'] = df4.index df5 = pd.merge(df3, df4, on='Date') df5 = df5.set_index('Date') df5.head() | cs |
AAPL_High | AAPL_Low | GOOG_High | GOOG_Low | |
---|---|---|---|---|
Date | ||||
2010-01-04 | 30.64 | 30.34 | 629.511067 | 624.241073 |
2010-01-05 | 30.80 | 30.46 | 627.841071 | 621.541045 |
2010-01-06 | 30.75 | 30.11 | 625.861078 | 606.361042 |
2010-01-07 | 30.29 | 29.86 | 610.001045 | 592.651008 |
2010-01-08 | 30.29 | 29.87 | 603.251034 | 589.110988 |
생각보다 귀찮은 과정을 거칩니다.
각 인덱스를 Date로 정하고 merge()함수 세번째 파라미터에 on='Date'를 추가하면서 df5 테이블을 생성합니다.
df5테이블에서 Date 열을 인덱스로 할 것이라고 명시해둡니다.
끝!
'통계 및 데이터 처리 > python' 카테고리의 다른 글
워드 클라우드 그리기 : 데이터 전처리 (1) | 2017.08.22 |
---|---|
konlpy : 텍스트 분석하기 (0) | 2017.08.21 |
file io (0) | 2017.08.10 |
pandas 데이터 테이블 다루기 (0) | 2017.08.09 |
pandas datatable 생성 (0) | 2017.08.09 |