AI/실습

116. [Python] [Pandas] 프로그래밍 실습 : 기온데이터 분석

천재단미 2025. 1. 24. 10:25
728x90
반응형
반응형

목차 ▽열기

 
 

 

  • seoul.csv 파일을 읽어와 데이터를 확인합니다.
  • 파일 인코딩은 cp949로 설정합니다.
df =  read_csv('../data/seoul.csv',encoding = 'cp949')

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb

%matplotlib inline

import platform

 
 
 

문제 1. 가장 더운 날 찾기

가장 더운날은 언제입니까?
 
 
 

풀이 1.

import pandas as pd

df['최고기온(℃)'].max()

max_temp = df['최고기온(℃)'].max()

df.loc[df['최고기온(℃)'] == max_temp]

 

출력

  • 최고기온은 38.4℃이며, 1994년 7월 24일에 기록되었습니다.

 
 


 
 
 
 

문제 2. 최고기온 히스토그램 생성

최고기온을 히스토그램으로 나타내되, bin의 범위를 4도로 만들어서, 히스토그램으로 보여주세요.

  • 최고기온 데이터에 대해 히스토그램을 생성합니다.
  • bins의 간격을 4도로 설정합니다.
import numpy as np
import matplotlib.pyplot as plt

# 히스토그램 범위 설정
my_bins = np.arange(df['최고기온(℃)'].min(), df['최고기온(℃)'].max() + 4, 4)

# 히스토그램 시각화
plt.hist(data=df, x='최고기온(℃)', bins=my_bins, rwidth=0.8)
plt.title('최고기온 히스토그램')
plt.xlabel('최고기온 (℃)')
plt.ylabel('빈도')
plt.show()

 
 

코드분석

 
np.arange(.  ,   +4, 4) :  +4 한 이유는 최저 온도와 최고 온도의 온도를 표시하기 위함입니다. 

np.arange( df['최고기온(℃)'].min(),df['최고기온(℃)'].max()+4, 4 ) 

#array([-16.3, -12.3,  -8.3,  -4.3,  -0.3,   3.7,   7.7,  11.7,  15.7,
        19.7,  23.7,  27.7,  31.7,  35.7,  39.7])

 
 

출력

  • 최고기온 분포를 4도 간격으로 나눈 히스토그램이 생성됩니다.

 
 


 
 
 
 
 
 

문제 3. 2014년 이후 데이터 필터링 및 히스토그램 생성

위에서는 모든 날짜에 대한 데이터 입니다. 그러면! 2014년도 부터의 데이터를 기준으로, bin의 범위를 4도로 만들어서, 히스토그램으로 보여주세요.
 
 

 

풀이 3.

  • 2014년 이후 데이터만 필터링합니다.
  • 필터링된 데이터를 기반으로 히스토그램을 생성합니다.
# 2014년 이후 데이터 필터링
df_2014 = df.loc[df['날짜'] >= '2014-01-01']

# 히스토그램 생성
plt.hist(data=df_2014, x='최고기온(℃)', bins=my_bins, rwidth=0.8)
plt.title('2014년 이후 최고기온 히스토그램')
plt.xlabel('최고기온 (℃)')
plt.ylabel('빈도')
plt.show()

 
 

출력

  • 2014년 이후 데이터만으로 구성된 히스토그램이 생성됩니다.

 
 
 
 
 
 
 

번외 문제 3-1.  기간산정 스캘레터 작성

 
## 2017-08-01 에서 2017-08-15까지의 날짜를 기준으로 X축은 날짜 Y축은 최고기온을 기준으로 스캘래터로 작성하시오
 

번외 풀이 3-1. 

df[(df['날짜'] >= '2017-08-01') & (df['날짜'] <= '2017-08-15')]

# 특정 기간의 데이터로 기준최고기온 설정
df_3 = df[(df['날짜'] >= '2017-08-01') & (df['날짜'] <= '2017-08-15')]

df_3

plt.figure(figsize = (20,10))
plt.scatter(data = df_3, x = '날짜', y = '최고기온(℃)' )
plt.title('날짜 기준별 최고 온도')
plt.xlabel('날짜 (2017-08-01 ~ 2017-08-15)')
plt.ylabel('최고기온')
plt.show()

 

출력

 
 

  TIP💡  점 크기 변경

 
plt.scatter(x, y, s=300)   :  s 점의 크키를 성정해주시면 됩니다. 
 
sizes = [50, 100, 200, 300, 500] 순으로 설정가능합니다. 
 
 
 
 


 
 
 
 

4. 주요 학습 포인트

  1. 데이터 전처리
    • Pandas를 활용한 데이터 필터링 및 조건 검색.
    • 특정 열의 최대/최소값을 구하고 조건에 따라 데이터 선택.
  2. 시각화
    • Matplotlib로 히스토그램과 스캐터 플롯 생성.
    • 데이터 분포와 관계를 효과적으로 표현.
  3. 실무 적용
    • 서울의 기온 데이터를 분석하며 데이터 기반 의사결정에 필요한 통찰 제공.

 
 
 
 

728x90
반응형
home
}