이번에는 멀티컬럼에 대해서 알아보겠습니다.
멀티컬럼은 멀티인덱스와 구조만 다릅니다.
from pandas import DataFrame
data = [
[100, 900, 800, 700],
[1200, 1400, 900, 800]
]
columns = [
['영업이익', '영업이익', '당기순이익', '당기순이익'],
['컨센서스', '잠정치', '컨센서스', '잠정치']
]
index = ["2020/06", "2020/09"]
df = DataFrame(data=data, index=index, columns=columns)
df
------------------------------------------
영업이익 당기순이익
컨센서스 잠정치 컨센서스 잠정치
2020/06 100 900 800 700
2020/09 1200 1400 900 800
컬럼의 개수가 많지 않으면 직접 지정가능하지만, 컬럼의 개수가 많아지면 모든 조합을 하드코딩으로 입력하지 않고,
판다스의 MultiIndex 의 from_product 함수는 입력된 리스트로 데이터의 조합을 만들수 있다.
from pandas import DataFrame
import pandas as pd
data = [
[100, 900, 800, 700],
[1200, 1400, 900, 800]
]
index = ["2020/06", "2020/09"]
level_0 = ["영업이익", "당기순이익"]
level_1 = ["컨센서스", "잠정치"]
idx = pd.MultiIndex.from_product([level_0, level_1])
df = DataFrame(data=data, index=index, columns=idx)
df
------------------------------------------------------
영업이익 당기순이익
컨센서스 잠정치 컨센서스 잠정치
2020/06 100 900 800 700
2020/09 1200 1400 900 800
인덱싱 하는 방법
df["영업이익"]
--------------------------
컨센서스 잠정치
2020/06 100 900
2020/09 1200 1400
df[[("영업이익", "컨센서스")]]
--------------------------
영업이익
컨센서스
2020/06 100
2020/09 1200
df.loc["2020/06", "영업이익"]
--------------------------
컨센서스 100
잠정치 900
Name: 2020/06, dtype: int64
df.loc[["2020/06"], ["영업이익"]]
--------------------------
영업이익
컨센서스 잠정치
2020/06 100 900
df.loc["2020/06", ("영업이익", "컨센서스")]
--------------------------
100
df.loc["2020/06", (slice(None), "컨센서스")]
--------------------------
영업이익 컨센서스 100
당기순이익 컨센서스 800
Name: 2020/06, dtype: int64
df.loc[["2020/06"], (slice(None), "컨센서스")]
--------------------------
영업이익 당기순이익
컨센서스 컨센서스
2020/06 100 800
행/열(x축/y축) 변경
df.T
--------------------------------
2020/06 2020/09
영업이익 컨센서스 100 1200
잠정치 900 1400
당기순이익 컨센서스 800 900
잠정치 700 800
df.transpose()
--------------------------------
2020/06 2020/09
영업이익 컨센서스 100 1200
잠정치 900 1400
당기순이익 컨센서스 800 900
잠정치 700 800
'Python > Data analysis' 카테고리의 다른 글
[Python] Data Analysis - DataFrame - Pivot (0) | 2023.04.08 |
---|---|
[Python] Data Analysis - DataFrame - Stack / Unstack (0) | 2023.04.07 |
[Python] Data Analysis - DataFrame - multi-index (0) | 2023.04.06 |
[Python] Data Analysis - DataFrame - join (0) | 2023.04.06 |
[Python] Data Analysis - DataFrame - merge (0) | 2023.04.05 |