1. Import Module
import pandas as pd
from print_df import print_df
import matplotlib.pyplot as plt
2. Sample Data : https://developer-ankiwoong.tistory.com/259
3. Code
import pandas as pd
from print_df import print_df
import matplotlib.pyplot as plt
df = pd.read_csv('weather.csv', encoding='utf=8')
df_list = list(df['지역'])
index_dict = {}
for i, v in enumerate(df_list):
index_dict[i] = v
df.drop('지역', axis=1, inplace=True)
df.rename(index=index_dict, inplace=True)
city = df.loc[['서울', '인천', '대전', '대구', '광주', '부산', '울산']]
plt.rcParams["font.family"] = 'NanumGothic'
plt.rcParams["font.size"] = 14
plt.rcParams["figure.figsize"] = (10 ,10)
plt.figure()
city.plot(kind='barh')
plt.title('특별시 / 광역시 날씨')
plt.xlabel('기온/습도')
plt.ylabel('도시')
plt.grid()
plt.legend()
plt.savefig('wether.png')
plt.close()
4 Code 풀이
- Data Frame 생성
df = pd.read_csv('weather.csv', encoding='utf=8')
- Data Frame 크기 확인
print('shape:', df.shape)
shape: (95, 3)
Process finished with exit code 0
print_df(df.head())
+---+--------+-------+-------+
| | 지역 | 기온 | 습도 |
+---+--------+-------+-------+
| 0 | 서울 | 18.1 | 45 |
| 1 | 백령도 | 20.7 | 32 |
| 2 | 인천 | 17.3 | 59 |
| 3 | 수원 | 18.6 | 57 |
| 4 | 동두천 | 19.0 | 59 |
+---+--------+-------+-------+
Process finished with exit code 0
- Data Frame Tail 확인
print_df(df.tail())
+----+------+-------+-------+
| | 지역 | 기온 | 습도 |
+----+------+-------+-------+
| 90 | 합천 | 20.7 | 36 |
| 91 | 밀양 | 19.2 | 32 |
| 92 | 산청 | 18.8 | 45 |
| 93 | 거제 | 22.7 | 35 |
| 94 | 남해 | 21.7 | 41 |
+----+------+-------+-------+
Process finished with exit code 0
df_list = list(df['지역'])
index_dict = {}
for i, v in enumerate(df_list):
index_dict[i] = v
df.drop('지역', axis=1, inplace=True)
df.rename(index=index_dict, inplace=True)
+--------------+-------+-------+
| | 기온 | 습도 |
+--------------+-------+-------+
| 서울 | 18.1 | 45 |
| 백령도 | 20.7 | 32 |
| 인천 | 17.3 | 59 |
| 수원 | 18.6 | 57 |
| 동두천 | 19.0 | 59 |
| 파주 | 18.5 | 61 |
| 강화 | 19.2 | 50 |
| 양평 | 16.5 | 58 |
| 이천 | 18.0 | 51 |
| 북춘천 | 17.1 | 54 |
| 북강릉 | 23.0 | 20 |
| 울릉도 | 19.3 | 46 |
| 속초 | 23.9 | 19 |
| 철원 | 18.5 | 40 |
| 대관령 | 14.8 | 38 |
| 춘천 | 16.9 | 53 |
| 강릉 | 22.5 | 24 |
| 동해 | 22.0 | 23 |
| 원주 | 17.9 | 41 |
| 영월 | 18.1 | 48 |
| 인제 | 16.6 | 51 |
| 홍천 | 17.6 | 58 |
| 태백 | 18.5 | 23 |
| 정선군 | 16.8 | 41 |
| 서산 | 18.4 | 65 |
| 청주 | 19.2 | 55 |
| 대전 | 19.5 | 57 |
| 충주 | 17.8 | 49 |
| 추풍령 | 18.9 | 33 |
| 홍성 | 19.4 | 59 |
| 제천 | 17.3 | 43 |
| 보은 | 17.9 | 54 |
| 천안 | 18.0 | 59 |
| 보령 | 19.5 | 57 |
| 부여 | 19.3 | 60 |
| 금산 | 19.4 | 45 |
| 전주 | 20.2 | 52 |
| 광주 | 18.6 | 55 |
| 목포 | 19.3 | 51 |
| 여수 | 18.7 | 52 |
| 흑산도 | 16.8 | 68 |
| 군산 | 19.0 | 60 |
| 완도 | 18.6 | 69 |
| 고창 | 19.5 | 55 |
| 순천 | 18.3 | 56 |
| 진도(첨찰산) | 17.2 | 57 |
| 부안 | 20.7 | 48 |
| 임실 | 16.5 | 51 |
| 정읍 | 20.2 | 54 |
| 남원 | 17.2 | 47 |
| 장수 | 18.7 | 34 |
| 고창군 | 20.5 | 47 |
| 영광군 | 19.8 | 54 |
| 순창군 | 17.4 | 57 |
| 보성군 | 18.3 | 61 |
| 강진군 | 18.2 | 56 |
| 장흥 | 18.3 | 54 |
| 해남 | 19.4 | 52 |
| 고흥 | 20.1 | 41 |
| 광양시 | 20.4 | 42 |
| 진도군 | 20.4 | 52 |
| 제주 | 24.3 | 28 |
| 고산 | 19.7 | 69 |
| 성산 | 20.8 | 29 |
| 서귀포 | 23.4 | 35 |
| 안동 | 17.6 | 50 |
| 포항 | 20.9 | 33 |
| 대구 | 19.9 | 30 |
| 울산 | 21.4 | 35 |
| 창원 | 20.7 | 39 |
| 부산 | 21.2 | 33 |
| 울진 | 21.2 | 31 |
| 상주 | 19.9 | 52 |
| 통영 | 18.7 | 60 |
| 진주 | 19.2 | 51 |
| 김해시 | 22.5 | 38 |
| 북창원 | 21.5 | 37 |
| 양산시 | 20.7 | 44 |
| 의령군 | 20.1 | 40 |
| 함양군 | 18.2 | 58 |
| 봉화 | 16.6 | 46 |
| 영주 | 16.1 | 52 |
| 문경 | 18.4 | 55 |
| 청송군 | 18.6 | 46 |
| 영덕 | 21.8 | 31 |
| 의성 | 19.1 | 40 |
| 구미 | 19.9 | 43 |
| 영천 | 20.0 | 33 |
| 경주시 | 20.9 | 38 |
| 거창 | 17.5 | 49 |
| 합천 | 20.7 | 36 |
| 밀양 | 19.2 | 32 |
| 산청 | 18.8 | 45 |
| 거제 | 22.7 | 35 |
| 남해 | 21.7 | 41 |
+--------------+-------+-------+
Process finished with exit code 0
- 특별시 / 광역시 데이터만 추출(서울 / 인천 / 대전 / 대구 / 광주 / 부산 / 울산)
city = df.loc[['서울', '인천', '대전', '대구', '광주', '부산', '울산']]
+------+-------+-------+
| | 기온 | 습도 |
+------+-------+-------+
| 서울 | 18.1 | 45 |
| 인천 | 17.3 | 59 |
| 대전 | 19.5 | 57 |
| 대구 | 19.9 | 30 |
| 광주 | 18.6 | 55 |
| 부산 | 21.2 | 33 |
| 울산 | 21.4 | 35 |
+------+-------+-------+
Process finished with exit code 0
- 그래프 시각화
plt.rcParams["font.family"] = 'NanumGothic'
plt.rcParams["font.size"] = 14
plt.rcParams["figure.figsize"] = (10 ,10)
plt.figure()
city.plot(kind='barh')
plt.title('특별시 / 광역시 날씨')
plt.xlabel('기온/습도')
plt.ylabel('도시')
plt.grid()
plt.legend()
plt.savefig('wether.png')
plt.close()
'Python_Intermediate > Pandas' 카테고리의 다른 글
Pandas - Json File Data 분석 2(Pandas 사용) (0) | 2019.05.25 |
---|---|
Pandas - Json File Data 분석 1(기본 문법 사용) (0) | 2019.05.25 |
Pandas - Scientists Data 분석 (0) | 2019.05.20 |
Pandas - Gapminder Data 분석(그래프 분석) 3 (0) | 2019.05.20 |
Pandas - Gapminder Data 분석(TSV File) 2 (0) | 2019.05.19 |