반응형
DataFrame의 groupby의 사용법을 삼성전자 주가의 데이터로 확인해 보겠습니다.
FinanceDataReader를 이용 데이터를 수집합니다.
import FinanceDataReader as fdr
code='005930'
startdate='2020-01-01'
df=fdr.DataReader(code,startdate)
df['year']=df.index.strftime('%Y')
df['month']=df.index.strftime('%m')
df['yearmonth']=df.index.strftime('%Y%m')
df.head()
연도별 평균데이터는 아래의 방법으로 확인이 가능합니다.
df.groupby('year').mean()
연도별 (2020, 2021, 2022년)로 각 데이터(Open, High, Low, Close .....) 들의 평균을 구하게 됩니다.
year가 2020년인 데이터 중에서 평균(Open, High, Low.....)을 구하게 되는 것입니다.
mean을 sum으로 변경하면 합계를 구하게 됩니다.
df.groupby('year').sum()
다음은 년월 기준 데이터를 확인해보겠습니다.
아래와 같이 복수개의 column을 기준으로 설정할수 있습니다.
df.groupby(['year','month']).mean()
groupby([ ]) 안에 지정한 column이 아래 빨간 부분처럼 index로 설정됩니다.
각 column들 중에서 Close column만 확인하는 방법을 알아보겠습니다.
두가지 방법이 있는데 첫 번째로는 위의 코드에서 끝에 필요한 column을 지정하는 것입니다.
df.groupby(['year','month']).mean()[['Close']]
두번째로는 필요한 colulmn들을 먼저 지정한 후에 groupby 계산하는 방법입니다.
df[['year','month','Close']].groupby(['year','month']).mean()
첫 번째는 전체 column에 대해서 평균을 구하고 필요한 column을 지정하는 방식이고,
두 번째는 필요한 column을 지정하고 groupby를 하는 방식입니다.
이상으로 groupby의 사용법에 대해서 알아봤습니다.
반응형
'코딩TIPS' 카테고리의 다른 글
[seaborn] scatterplot 그래프 그리기 (4) | 2022.11.02 |
---|---|
[seaborn] lineplot 그래프 그리기 (4) | 2022.10.31 |
[Python] dataframe의 pivot_table (4) | 2022.10.25 |
[Python] DataFrame loc 원하는 조건의 데이터만 조회 (4) | 2022.10.22 |
[Python] DataFrame concat 으로 합치기(병합) (4) | 2022.10.18 |