728x90
의미있는 정보 추출을 위해 데이터를 요약하는 방법과 다양한 통계치로 요약된 데이터를 한 번에 보는 방법에 대해 알아보자. 합, 최소값, 최대값, 중간값 등의 통계치를 한 번에 출력하는 방법은 다음과 같다. agg함수를 통하여 다양한 정보를 볼 수 있다. 아래는 전체기간 및 주간 단위로 그룹화하여 나타낸 결과이다.
import FinanceDataReader as fdr
if __name__ == '__main__':
aapl = fdr.DataReader('AAPL', '2021-06-01')
ssec = fdr.DataReader('005930', '2021-06-01')
price = aapl[['Close']].merge(ssec[['Close']], how='outer', left_index=True, right_index=True)
price = price.rename(columns={'Close_x': 'AAPL', 'Close_y': 'SSEC'})
print(price.agg(['sum', 'min', 'mean', 'median', 'max', 'std']))
print(price.resample('1W').agg(['sum', 'min', 'mean', 'median', 'max', 'std']))
결과 값
AAPL SSEC
sum 2184.50000 1.459100e+06
min 123.54000 7.990000e+04
mean 128.50000 8.106111e+04
median 127.35000 8.095000e+04
max 133.98000 8.280000e+04
std 3.29719 7.919736e+02
AAPL ... SSEC
sum min mean ... median max std
Date ...
2021-06-06 498.77 123.54 124.692500 ... 81500 82800 1070.825227
2021-06-13 633.23 125.90 126.646000 ... 81100 81900 476.445170
2021-06-20 652.52 129.64 130.504000 ... 80900 81800 531.036722
2021-06-27 399.98 132.30 133.326667 ... 80050 81200 605.530071
기본적인 합, 최소값 등의 집계함수는 내장되어 있어서 편리하게 사용할 수 있다. 만약에 다른 분석 방법으로 데이터를 보고 싶다면 아래와 같이 직접 함수를 만들어서 적용시킬 수 있다.
def abc(data):
return data.sum() * 0.1
print(price.resample('1W').agg(abc))
print(price.resample('1W').agg(['sum', abc]))
결과 값
AAPL SSEC
Date
2021-06-06 49.877 32640
2021-06-13 63.323 40690
2021-06-20 65.252 40460
2021-06-27 39.998 32120
AAPL SSEC
sum abc sum abc
Date
2021-06-06 498.77 49.877 326400 32640
2021-06-13 633.23 63.323 406900 40690
2021-06-20 652.52 65.252 404600 40460
2021-06-27 399.98 39.998 321200 32120
합의 10%를 출력하는 abc함수를 만들어 출력한 결과이다. 물론 내장되어있는 함수와 같이 출력하는 것 또한 가능하다.
728x90
'Data Science > Data Preprocessing' 카테고리의 다른 글
[03. Feature Engineering] 003. Binning (0) | 2021.06.29 |
---|---|
[03. Feature Engineering] 002. Scaling (0) | 2021.06.24 |
[02. Data Quality Assessment] 003. Duplicate values (0) | 2020.12.18 |
[02. Data Quality Assessment] 002. Outlier values (0) | 2020.12.18 |
[02. Data Quality Assessment] 001. Missing Values (0) | 2020.09.23 |