728x90
중복된 데이터가 있는 경우는 어떻게 처리해야 할까? 그 데이터가 의미 있는 데이터이고 우연하게 중복된 값이 있는 것이라면 삭제해서는 안될 것이다. 하지만 주가 데이터 중에 휴일 데이터는 전 영업일 데이터를 가져오는 경우가 많기 때문에 삭제를 해야 할 것이다. 데이터의 의미를 잘 생각해보고 삭제 여부를 판단해야 한다.
아래는 휴일데이터가 없어 한국시장과 미국시장의 휴일이 다른 점을 이용하여 강제로 휴일 데이터를 만들어 삭제한 것이다.
import FinanceDataReader as fdr
import pandas as pd
if __name__ == '__main__':
aapl = fdr.DataReader('AAPL', '2020-11-21')
ssec = fdr.DataReader('005930', '2020-11-21')
price = aapl[['Close']].merge(ssec[['Close']], how='outer', left_index=True, right_index=True)
price = price.rename(columns={'Close_x': 'AAPL', 'Close_y': 'SSEC'})
price = price.ffill()
aapl = price[['AAPL']]
print(aapl.head())
print(aapl.drop_duplicates(keep='first').head())
결과 값
AAPL
Date
2020-11-23 113.85
2020-11-24 115.17
2020-11-25 116.03
2020-11-26 116.03
2020-11-27 116.59
AAPL
Date
2020-11-23 113.85
2020-11-24 115.17
2020-11-25 116.03
2020-11-27 116.59
2020-11-30 119.05
미국의 추수감사절이 빠진 걸 볼 수 있다. Keep값을 first가 아닌 last로 입력하면 중복된 값 중 마지막 데이터만 남긴다.
728x90
'Data Science > Data Preprocessing' 카테고리의 다른 글
[03. Feature Engineering] 002. Scaling (0) | 2021.06.24 |
---|---|
[03. Feature Engineering] 001. Aggregation (0) | 2021.06.24 |
[02. Data Quality Assessment] 002. Outlier values (0) | 2020.12.18 |
[02. Data Quality Assessment] 001. Missing Values (0) | 2020.09.23 |
[01. 데이터] 001. 데이터 전처리 (0) | 2020.05.02 |