728x90
반응형
데이터 수집하기
🫐 한국전력거래소 시간별 전력수요량 데이터 수
- 수집위치 : data.go.kr
- 한국전력거래소 시간별 전력수요량 csv 파일 다운로드
데이터 불러들이기
🫐 데이터 프레임 변수명 : df
- df = pd.read_csv(file_path)
→ 이렇게 작성하면 UnicodeDecodeError 에러
→ 인코딩 필요 - pandas는 기본적으로 utf-8
- 메모장 저장될 때 기본 utf-8, 공공데이터 저장 ansi
- euc-kr 한국어 타입으로 인코딩
import pandas as pd
file_path = "./01_data/한국전력거래소_시간별 전력수요량_20211231.csv"
df = pd.read_csv(file_path, encoding= "euc-kr")
df
🫐 결측데이터 확인
df.info()
- 결측치는 없다
🫐 이상치 데이터 확인
- 측정된 데이터 이므로 min을 보는게 적절하다
- min이 0 이하로 떨어지면 이상치
df.describe()
🫐 컬럼명의 시간을 데이터화 하기 위하여 컬럼명 추출하기
df.columns
🫐 변수로 받기
col_list = df.columns
col_list
데이터 프레임 생성하기
🫐 3개의 열 (년도, 시간, 전력량)을 가지는 데이터프레임 생성하기
result_df = pd.DataFrame(columns=["년도", "시간", "전력량"])
result_df
🫐데이터프레임에 데이터 행단위 추가하기
- items() : 튜플로 만들어서 넘겨주면 그 안에 갯수만큼 왼쪽의 변수들이 각각 받아준다.
- print(ymd, "/", time, "/", value) : 2021-12-31 / 24시 / 70123 까지 추출된다.
- concat() : 데이터프레임과 데이터프레임을 행단위(axis = 0) 또는 칼럼단위(axis = 1)로 추가할 때 사용
- ignore_index=True : 행이 추가될 때 행 인덱스 번호를 자동증가 시키기 (default = false)
### 데이터프레임에 데이터 행단위 추가하기
result_df = pd.DataFrame(columns=["년도", "시간", "전력량"])
for index, row in df.iterrows() :
# print(row)
### 년도 데이터
ymd = row[col_list[0]] # 날짜
### 시간과 전령량이 합쳐진 데이터
data = row[col_list[1:]] # 1시 부터 24시 까지. 모든 시간대
# print(data)
### 시간과 전력량을 각각 추출하여 데이터프레임에 넣기
# - 넣을 값 : 날짜, 시간, 잔력량
for time, value in data.items() :
# print(ymd, "/", time, "/", value)
### 행단위로 데이터프레임에 추가하기 위해서 추가할 행을 데이터프레임으로 생성
df_temp = pd.DataFrame({"년도":[ymd], "시간":[time], "전력량":[value]})
### 데이터프레임에 행단위로 추가하기
result_df = pd.concat([result_df, df_temp], axis=0, ignore_index=True)
### 최종결과 출력
result_df
🫐 정제된 데이터 파일로 저장하기
- 저장할 경로 지정
- index=False : 인덱스 번호값은 저장하지 않기(default = True)
save_path = "./01_data/new_data.csv"
result_df.to_csv(save_path, index = False)
🫐 저장한 데이터 파일 읽어들이기
file_path = "./01_data/new_data.csv"
df = pd.read_csv(file_path)
df
728x90
반응형
'Digital Boot > Database' 카테고리의 다른 글
[Data Wrangling] 데이터베이스 프로그램 (2) | 2023.11.29 |
---|---|
[Data Wrangling] 데이터베이스 테이블에 저장하기 (0) | 2023.11.28 |
[Data Wrangling] Pandas판다스, 데이터 분석 / 조회 / 추가 / 필터링 (3) | 2023.11.28 |
[Database][SQL] 사용자 정의 함수 / VIEW / Procedure / 저장 모듈 (1) | 2023.11.27 |
[Database][SQL] UNION / UNION ALL / EXISTS / UPDATE (2) | 2023.11.24 |