본문 바로가기

Python/Data analysis

[Python] Data Analysis - DataFrame - add data

이번 시간에는 기존 데이터프레임에 데이터를 추가하는 방법에 대해서 알아보겠습니다.

 

먼저 횡방향(컬럼 데이터 추가) 데이터 추가하는 샘플입니다.

 

from pandas import DataFrame
import pandas as pd

data = {
    '종가': [113000, 111500],
    '거래량': [555850, 282163]
}
index = ["2019-06-21", "2019-06-20"]
df1 = DataFrame(data=data, index=index)
df1
-------------------------------------------
		종가	거래량
2019-06-21	113000	555850
2019-06-20	111500	282163


data = {
    '시가': [112500, 110000],
    '고가': [115000, 112000],
    '저가': [111500, 109000]
}
df2 = DataFrame(data=data, index=index)
df2
-------------------------------------------
		시가	고가	저가
2019-06-21	112500	115000	111500
2019-06-20	110000	112000	109000

 

concat 메서드를 이용한 데이터 추가, 옵션으로 "axis = 1" 을 추가한다.

 

df = pd.concat([df1, df2], axis=1)
df
-------------------------------------------
		종가	거래량	시가	고가	저가
2019-06-21	113000	555850	112500	115000	111500
2019-06-20	111500	282163	110000	112000	109000


정렬순서 = ['시가', '고가', '저가', '종가', '거래량']
df = df[정렬순서]
df
-------------------------------------------
		시가	고가	저가	종가	거래량
2019-06-21	112500	115000	111500	113000	555850
2019-06-20	110000	112000	109000	111500	282163

 

 

그외 concat 옵션 - join

data = {
    '종가': [113000, 111500],
    '거래량': [555850, 282163]
}
index = ["2019-06-21", "2019-06-20"]
df1 = DataFrame(data=data, index=index)

data = {
    '시가': [112500, 110000],
    '고가': [115000, 112000],
    '저가': [111500, 109000]
}
index = ["2019-06-20", "2019-06-19"]
df2 = DataFrame(data=data, index=index)

df = pd.concat([df1, df2], axis=1)
df
-------------------------------------------
		종가		거래량		시가		고가		저가
2019-06-21	113000.0	555850.0	NaN		NaN		NaN
2019-06-20	111500.0	282163.0	112500.0	115000.0	111500.0
2019-06-19	NaN		NaN		110000.0	112000.0	109000.0


df = pd.concat([df1, df2], axis=1, join='inner')
df
# -------------------------------------------
		종가	거래량	시가	고가	저가
2019-06-20	111500	282163	112500	115000	111500


df = pd.concat([df1, df2], axis=1, join='outer')
df
# -------------------------------------------
		종가		거래량		시가		고가		저가
2019-06-21	113000.0	555850.0	NaN		NaN		NaN
2019-06-20	111500.0	282163.0	112500.0	115000.0	111500.0
2019-06-19	NaN		NaN		110000.0	112000.0	109000.0

 

 

 

먼저 종방향(로우 데이터 추가) 데이터 추가하는 샘플입니다.

 

df1
-------------------------------------------
		종가	거래량
2019-06-21	113000	555850
2019-06-20	111500	282163


df2
-------------------------------------------
		종가	거래량
2019-06-19	110000	109000
2019-06-18	483689	791946


df = pd.concat([df1, df2])
df
-------------------------------------------
		종가	거래량
2019-06-21	113000	555850
2019-06-20	111500	282163
2019-06-19	110000	109000
2019-06-18	483689	791946