λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT/Python

[Python] 1. 데이터 μˆ˜μ§‘ν•˜κΈ° (ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰ 데이터 μˆ˜μ§‘, 데이터 λž­κΈ€λ§)

by ITyranno 2023. 12. 1.
728x90
λ°˜μ‘ν˜•

 

 

 

 

 

 

 

 

 

ν”„λ‘œκ·Έλž˜λ° 세계λ₯Ό νƒκ΅¬ν•©μ‹œλ‹€.

 

 

 

 

 

 

 

 

 

2, 3νŽΈμ€ 이후 κ²Œμ‹œκΈ€ μ°Έκ³  λ°”λžλ‹ˆλ‹€.

 

 

2023.12.02 - [IT/Python] - [Python] 2. λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ— μ €μž₯ν•˜κΈ° (ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰ 데이터 μˆ˜μ§‘, Python-mariaDB μ—°κ²°, 데이터 λž­κΈ€λ§)

 

 

[Python] 2. λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ— μ €μž₯ν•˜κΈ° (ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰ 데이터 μˆ˜μ§‘, Pyth

ν”„λ‘œκ·Έλž˜λ° 세계λ₯Ό νƒκ΅¬ν•©μ‹œλ‹€. 1νŽΈμ€ 이전 κ²Œμ‹œκΈ€ μ°Έκ³  λ°”λžλ‹ˆλ‹€. 2023.12.01 - [IT/Python] - [Python] 1. 데이터 μˆ˜μ§‘ν•˜κΈ° (ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰ 데이터 μˆ˜μ§‘, 데이터 λž­κΈ€λ§) [Python] 1. 데

ityranno.tistory.com

 

 

 

2023.12.04 - [IT/Python] - [Python] 3. λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ— μ €μž₯ν•˜κΈ° (ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰ 데이터 μˆ˜μ§‘, Python-mariaDB μ—°κ²°, 데이터 λž­κΈ€λ§)

 

 

[Python] 3. λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ— μ €μž₯ν•˜κΈ° (ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰ 데이터 μˆ˜μ§‘, Pyth

ν”„λ‘œκ·Έλž˜λ° 세계λ₯Ό νƒκ΅¬ν•©μ‹œλ‹€. 1, 2νŽΈμ€ 이전 κ²Œμ‹œκΈ€ μ°Έκ³  λ°”λžλ‹ˆλ‹€. 2023.12.01 - [IT/Python] - [Python] 1. 데이터 μˆ˜μ§‘ν•˜κΈ° (ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰ 데이터 μˆ˜μ§‘, 데이터 λž­κΈ€λ§) [Python] 1.

ityranno.tistory.com

 

 

 

 

 

 

 

 

<  ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰ 데이터 μˆ˜μ§‘  >

 

 

 

 

 [μˆ˜μ§‘ μœ„μΉ˜]

 

https://www.data.go.kr/data/15065266/fileData.do

 

ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ_μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰_20211231

μ‹œκ°„λ‹¨μœ„ μ „κ΅­ λ°œμ „λ‹¨ μˆ˜μš” 데이터이며 μˆ˜μš”μ˜ˆμΈ‘μš© μž μ •μžλ£Œμž„μ„ μ•Œλ¦½λ‹ˆλ‹€.<br/>ν•΄λ‹Ή λ‚ μ§œμ™€ 24μ‹œκ°„μ˜ μ „λ ₯μˆ˜μš” 값을 μ œκ³΅ν•©λ‹ˆλ‹€.<br/><br/>λ‹¨μœ„ :MWh

www.data.go.kr

 

 

 [μˆ˜μ§‘ 파일]

 

ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ_μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰_20211231.csv

 

 

 

 

 

μž‘μ„± μ½”λ“œ

 

"""
<ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰ 데이터 μˆ˜μ§‘>
 - μˆ˜μ§‘μœ„μΉ˜ : data.go.kr
"""

 

 

import pandas as pd

 

 

### 데이터 λΆˆλŸ¬λ“€μ΄κΈ°
# - λ°μ΄ν„°ν”„λ ˆμž„ λ³€μˆ˜λͺ… : df
file_path = "./01_data/ν•œκ΅­μ „λ ₯κ±°λž˜μ†Œ_μ‹œκ°„λ³„ μ „λ ₯μˆ˜μš”λŸ‰_20211231.csv"
df = pd.read_csv(file_path, encoding="euc-kr")

 

df

 

 

 

 

 

결츑데이터 확인 

 

 

### 결츑데이터 확인해보기
df.info()

 

 

 

 

 

 

μ΄μƒμΉ˜ 데이터 확인

 

### μ΄μƒμΉ˜ 데이터 ν™•μΈν•˜κΈ°
df.describe()

 

 

 

 

 

 

 

컬럼λͺ… μΆ”μΆœν•˜κΈ°

 

### 컬럼λͺ…μ˜ μ‹œκ°„μ„ λ°μ΄ν„°ν™”ν•˜κΈ° μœ„ν•˜μ—¬
# - 컬럼λͺ… μΆ”μΆœν•˜κΈ°
col_list = df.columns
col_list

 

 

 

 

 

 

 

 

1.  3개의 μ—΄(년도, μ‹œκ°„, μ „λ ₯λŸ‰)을 κ°€μ§€λŠ” λ°μ΄ν„°ν”„λ ˆμž„ μƒμ„±ν•˜κΈ°

 

 

result_df = pd.DataFrame(columns = ["년도", "μ‹œκ°„", "μ „λ ₯λŸ‰"])
result_df

 

 

 

 

 

col_list[0]

 

col_list[1:]

 

 

 

 

 

 

λ°μ΄ν„°ν”„λ ˆμž„μ— 데이터 ν–‰λ‹¨μœ„ μΆ”κ°€ν•˜κΈ°

 

 

### λ°μ΄ν„°ν”„λ ˆμž„μ— 데이터 ν–‰λ‹¨μœ„ μΆ”κ°€ν•˜κΈ°
for index, row in df.iterrows() :
    # print(row)
    ### 년도 데이터
    ymd  = row[col_list[0]]
    
    ### μ‹œκ°„κ³Ό μ „λ ₯λŸ‰ 데이터
    data = row[col_list[1:]]
    # print(data)

    ### μ‹œκ°„κ³Ό μ „λ ₯걍을 각각 μΆ”μΆœν•˜μ—¬ λ°μ΄ν„°ν”„λ ˆμž„μ— λ„£κΈ°
    # - 넣을 κ°’ : λ‚ μ§œ, μ‹œκ°„, μ „λ ₯λŸ‰
    for time, value in data.items():
        # print(ymd, "/", time, "/", value)

        ### ν–‰λ‹¨μœ„λ‘œ λ°μ΄ν„°ν”„λ ˆμž„μ— μΆ”κ°€ν•˜κΈ° μœ„ν•΄μ„œ μž„μ‹œλ‘œ λ°μ΄ν„°ν”„λ ˆμž„ 생성
        df_temp = pd.DataFrame({"년도":[ymd], "μ‹œκ°„":[time], "μ „λ ₯λŸ‰":[value]})

        ### λ°μ΄ν„°ν”„λ ˆμž„μ— ν–‰λ‹¨μœ„λ‘œ μΆ”κ°€ν•˜κΈ°
        # - concat() : λ°μ΄ν„°ν”„λ ˆμž„κ³Ό λ°μ΄ν„°ν”„λ ˆμž„μ„ ν–‰λ‹¨μœ„ 
        #              λ˜λŠ” μ»¬λŸΌλ‹¨μœ„(axis=1)둜 μΆ”κ°€ν•  λ•Œ μ‚¬μš©
        # - ignore_index=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
λ°˜μ‘ν˜•

loading