반응형
실습에 사용 된 자료
기상청 - 기상자료개방포털 / 서울 5월~6월 / 평균기온 삭제
https://data.kma.go.kr/stcs/grnd/grndTaList.do?pgmNo=70
In [1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
In [2]:
seoul_tem=pd.read_csv("C:\\Users\\LEEJUNGJIK\\Python\\AI\\seoul_tem.csv", index_col=None) ## 윈도우즈 환경에서는 경로마다 \\ 두개씩
# seoul_tem=pd.read_csv("C:\\Users\\LEEJUNGJIK\\Python\\AI\\sales_data.csv", index_col="month") 특정 column 의 인덱스
In [3]:
seoul_tem
# seoul_tem.head() 상위 5개만 확인 / seoul_tem.tail() 하위 5개만 확인
Out[3]:
month | day | low_tem | high_tem | |
---|---|---|---|---|
0 | 5.0 | 1 | 9.8 | 20.8 |
1 | 5.0 | 2 | 9.1 | 23.7 |
2 | 5.0 | 3 | 12.4 | 26.2 |
3 | 5.0 | 4 | 15.6 | 25.8 |
4 | 5.0 | 5 | 15.5 | 21.6 |
... | ... | ... | ... | ... |
57 | 6.0 | 27 | 21.4 | 29.1 |
58 | 6.0 | 28 | 24.2 | 30.1 |
59 | 6.0 | 29 | 23.2 | 25.9 |
60 | 6.0 | 30 | 23.2 | 29.1 |
61 | NaN | \t | NaN | NaN |
62 rows × 4 columns
In [4]:
# 최저기온 최고기온만 출력
plt.plot(seoul_tem['low_tem']) # 최저기온
plt.plot(seoul_tem['high_tem']) # 최고기온
plt.legend(['low_tem', 'high_tem']) # 범례 설정
plt.xlabel('DAY')
plt.ylabel('Temperature')
plt.show()
In [5]:
# 평균기온 coulmn 추가
seoul_tem_1=pd.DataFrame(seoul_tem, columns=['month', 'day', 'low_tem', 'high_tem', 'ave_tem'])
In [6]:
seoul_tem_1
Out[6]:
month | day | low_tem | high_tem | ave_tem | |
---|---|---|---|---|---|
0 | 5.0 | 1 | 9.8 | 20.8 | NaN |
1 | 5.0 | 2 | 9.1 | 23.7 | NaN |
2 | 5.0 | 3 | 12.4 | 26.2 | NaN |
3 | 5.0 | 4 | 15.6 | 25.8 | NaN |
4 | 5.0 | 5 | 15.5 | 21.6 | NaN |
... | ... | ... | ... | ... | ... |
57 | 6.0 | 27 | 21.4 | 29.1 | NaN |
58 | 6.0 | 28 | 24.2 | 30.1 | NaN |
59 | 6.0 | 29 | 23.2 | 25.9 | NaN |
60 | 6.0 | 30 | 23.2 | 29.1 | NaN |
61 | NaN | \t | NaN | NaN | NaN |
62 rows × 5 columns
In [7]:
# (최저기온 + 최고기온) / 2 = 평균 기온 값 등록
seoul_tem['ave_tem'] = seoul_tem[['low_tem', 'high_tem']].mean(axis=1)
seoul_tem
Out[7]:
month | day | low_tem | high_tem | ave_tem | |
---|---|---|---|---|---|
0 | 5.0 | 1 | 9.8 | 20.8 | 15.30 |
1 | 5.0 | 2 | 9.1 | 23.7 | 16.40 |
2 | 5.0 | 3 | 12.4 | 26.2 | 19.30 |
3 | 5.0 | 4 | 15.6 | 25.8 | 20.70 |
4 | 5.0 | 5 | 15.5 | 21.6 | 18.55 |
... | ... | ... | ... | ... | ... |
57 | 6.0 | 27 | 21.4 | 29.1 | 25.25 |
58 | 6.0 | 28 | 24.2 | 30.1 | 27.15 |
59 | 6.0 | 29 | 23.2 | 25.9 | 24.55 |
60 | 6.0 | 30 | 23.2 | 29.1 | 26.15 |
61 | NaN | \t | NaN | NaN | NaN |
62 rows × 5 columns
In [8]:
plt.plot(seoul_tem['low_tem']) # 최저기온
plt.plot(seoul_tem['high_tem']) # 최고기온
plt.plot(seoul_tem['ave_tem']) # 평균기온
plt.legend(['low_tem', 'high_tem', 'ave_tem']) # 범례 설정
plt.xlabel('DAY') # 가로축 명칭
plt.ylabel('Temperature') # 세로축 명칭
Out[8]:
Text(0, 0.5, 'Temperature')
In [9]:
ave_low_tem = seoul_tem['low_tem'].mean()
ave_low_tem # low_tem 평균
Out[9]:
17.134426229508197
In [10]:
seoul_tem.loc[:, 'month'] # 5월 전체 값들 보기
# 특정 열에서 특정 값을 찾기
value_to_find = 5.0
filtered_rows = seoul_tem.loc[seoul_tem['month'] == value_to_find]
filtered_rows
Out[10]:
month | day | low_tem | high_tem | ave_tem | |
---|---|---|---|---|---|
0 | 5.0 | 1 | 9.8 | 20.8 | 15.30 |
1 | 5.0 | 2 | 9.1 | 23.7 | 16.40 |
2 | 5.0 | 3 | 12.4 | 26.2 | 19.30 |
3 | 5.0 | 4 | 15.6 | 25.8 | 20.70 |
4 | 5.0 | 5 | 15.5 | 21.6 | 18.55 |
5 | 5.0 | 6 | 11.7 | 15.5 | 13.60 |
6 | 5.0 | 7 | 11.1 | 18.6 | 14.85 |
7 | 5.0 | 8 | 7.9 | 22.0 | 14.95 |
8 | 5.0 | 9 | 10.0 | 24.4 | 17.20 |
9 | 5.0 | 10 | 10.7 | 26.0 | 18.35 |
10 | 5.0 | 11 | 12.8 | 26.7 | 19.75 |
11 | 5.0 | 12 | 13.1 | 24.7 | 18.90 |
12 | 5.0 | 13 | 12.6 | 23.9 | 18.25 |
13 | 5.0 | 14 | 12.9 | 23.8 | 18.35 |
14 | 5.0 | 15 | 12.8 | 27.9 | 20.35 |
15 | 5.0 | 16 | 17.2 | 31.2 | 24.20 |
16 | 5.0 | 17 | 18.6 | 28.7 | 23.65 |
17 | 5.0 | 18 | 18.8 | 27.6 | 23.20 |
18 | 5.0 | 19 | 16.7 | 27.8 | 22.25 |
19 | 5.0 | 20 | 16.6 | 26.7 | 21.65 |
20 | 5.0 | 21 | 15.3 | 21.9 | 18.60 |
21 | 5.0 | 22 | 15.9 | 26.8 | 21.35 |
22 | 5.0 | 23 | 14.1 | 26.9 | 20.50 |
23 | 5.0 | 24 | 14.8 | 25.9 | 20.35 |
24 | 5.0 | 25 | 15.7 | 27.4 | 21.55 |
25 | 5.0 | 26 | 15.8 | 27.3 | 21.55 |
26 | 5.0 | 27 | 18.6 | 20.7 | 19.65 |
27 | 5.0 | 28 | 18.4 | 20.2 | 19.30 |
28 | 5.0 | 29 | 19.0 | 28.5 | 23.75 |
29 | 5.0 | 30 | 20.5 | 28.9 | 24.70 |
30 | 5.0 | 31 | 18.8 | 28.2 | 23.50 |
In [11]:
seoul_tem.iloc[[5]] # 위 5월 6일 하루만 보여줌
Out[11]:
month | day | low_tem | high_tem | ave_tem | |
---|---|---|---|---|---|
5 | 5.0 | 6 | 11.7 | 15.5 | 13.6 |
In [12]:
seoul_tem_1 = seoul_tem['low_tem']
seoul_tem_1 # 특정 column 보기
Out[12]:
0 9.8 1 9.1 2 12.4 3 15.6 4 15.5 ... 57 21.4 58 24.2 59 23.2 60 23.2 61 NaN Name: low_tem, Length: 62, dtype: float64
반응형
댓글