데이터
[데이터 분석] 데이터 수집하기
멈머이
2023. 11. 29. 00:10
728x90
<한국 전력거래소 시간별 전력수요량 데이터 수집>
- 수집위치 : data.go.kr
공공 데이터 포털에서 공공데이터를 다운로드하여 진행했다.
* 데이터 불러오기
import pandas as pd
# - 데이터프레임 변수명 : df
file_path = "./01_data/한국전력거래소_시간별 전력수요량_20211231.csv"
df = pd.read_csv(file_path,encoding="euc-kr")
df
1. 파일 경로 및 파일 이름 지정
2. 읽어올 파일의 확장자와 인코딩 형식 지정.
* 결측데이터
df.info()
데이터 형식 확인
* 이상치데이터
df.describe()
이 단계에서 논리적으로 데이터에 오류가 있는지 확인해야 한다.
예를 들어 전력사용량의 최솟값인 min에서 마이너스 값이 나올 수 없다.
* 컬럼명 추출하기
col_list = df.columns
col_list
- 컬럼명의 시간을 데이터화하기 위해
* 3개의 열 (년도, 시간, 전력량)을 가지는 데이터프레임 생성하기
result_df = pd.DataFrame(columns=["년도", "시간", "전력량"])
result_df
데이터가 들어갈 껍데기만 만들었다.
* 데이터프레임에 데이터 행단위 추가하기
result_df = pd.DataFrame(columns=["년도", "시간", "전력량"])
for index, row in df.iterrows() :
### 년도 데이터
ymd = row[col_list[0]]
### 시간과 전력량 데이터
data = row[col_list[1:]]
### 시간과 전력량을 각각 추출하여 데이터프레임에 넣기
# - 넣을 값 : 날짜, 시간, 전력량
for time, value in data.items() :
#print(ymd, "/", time, "/", value)
### 행단위로 데이터프레임에 추가하기 위해서 추가할 행을 데이터 프레임으로 생성
df_temp = pd.DataFrame({"년도":[ymd], "시간":[time], "전력량":[value]})
### 데이터프레임에 행단위로 추가하기
# - concat() : 데이터프레임과 데이터프레임을 행단위(axis=0 <행단위> ,1 : 열단위) 또는 컬럼단위로 추가할 떄 사용.
# - ignor_idex=True : 행이 추가될 때 행 인덱스 번호를 자동증가 시키기 / 디폴트값은 False
result_df = pd.concat([result_df, df_temp], axis=0, ignore_index=True)
### 결과 출력하기
result_df
* 정제된 데이터 파일로 저장하기
### 저장할 경로 지정
save_path = "./01_data/new_data.csv"
### index = False : 인덱스 번호값은 저장하지 않기 [디폴트 : True]
result_df.to_csv(save_path, index=False)
728x90