728x90
반응형
반응형
TIP💡주피터 노트북 한글타이핑
# 한글 찍기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb
%matplotlib inline
import platform
from matplotlib import font_manager, rc
plt.rcParams['axes.unicode_minus'] = False
if platform.system() == 'Darwin':
rc('font', family='AppleGothic')
elif platform.system() == 'Windows':
path = "c:/Windows/Fonts/malgun.ttf"
font_name = font_manager.FontProperties(fname=path).get_name()
rc('font', family=font_name)
else:
print('Unknown system... sorry~~~~')
df = pd.read_csv('../data/subwayfee.csv' , encoding = 'cp949')
df
문제 1. 최대 구하기
유임승차, 유임하차, 무임승차, 무임하차 4가지 별로, 각각 가장 많은 역을 찾아보세요.
풀이 1.
df['유임승차'].max()
# 3153418
df.loc[df['유임승차'] == df['유임승차'].max()]
df['유임하차'].max()
# 3210437
df.loc[df['유임하차'] == df['유임하차'].max()]
df['무임승차'].max()
# 387062
df.loc[df['무임승차'] == df['무임승차'].max()]
df['무임하차'].max()
# 400607
df.loc[df['무임하차'] == df['무임하차'].max()]
출력
: 강남역, 종로3가 등 특정 역이 최대값을 기록.
문제 2. 무임승차 대비 유임승차 비율
무임승차 대비 유임승차 비율이 가장 높은 역은 어디입니까?
풀이 2.
# 유임승차/ 무인승차
df_2 = df.loc[df['무임승차'] != 0, ]
df_2['유임승차 비율'] = df_2['유임승차'] / df_2['무임승차']
df = df.drop('유임/무임 비율', axis=1)
df_2['유임승차 비율'].max()
# 27.5
df_2.loc[df_2['유임승차 비율'] == df_2['유임승차 비율'].max(), ]
df_2.loc[df_2['역ID'] ==321, ]
코드분석
- inf = df['유무임승차 비율'].max() : 결과값이 inf가 나오는 이유는 무임승차 값이 0인 경우
- 나눗셈이 불가능하여 무한대(inf)로 처리되기 때문입니다.
- df_2 = df.loc[df['무임승차'] != 0, ] : 0을 제거 하고 진행
출력
문제 3. 유임승차 비율 가장 높은 역(조건)
전체승차인원(유임+무임)이 만명이상인 역 중, 유임승차 비율이 가장 높은 역은 어디입니까?
풀이 3.
df['승차합계'] = df['유임승차'] +df['무임승차']
df_3 = df.loc[df['승차합계'] >= 10000, ]
df_3['유임승차 비율'] = df_3['유임승차']/df_3['무임승차']
df_3['유임승차 비율'].max()
df_3.sort_values(by='유임승차 비율', ascending=True)
코드분석
- df['승차합계'] >= 10000 : 10000당 승차 합계
- sort_values (by = '유임승차 비율', ascending = True) :
- sort_values(ascending=True) 오름차순 / sort_values(ascending=False 내림차순 )
출력
: df_3.sort_values(by='유임승차 비율', ascending=True)
문제 4. 파이차트생성 (4가지)
모든 역의 유임승차, 유임하차, 무임 승차, 무임하차, 총 4개를, 파이차트로 나타내세요.
풀이 4.
data = df.loc[ 0 , '유임승차': '무임하차' ]
data
출력
유임승차 1516452
유임하차 1400464
무임승차 221180
무임하차 211764
Name: 0, dtype: object
df['지하철역'][0]
plt.pie(data, labels = data.index, wedgeprops = {'width':0.7} , startangle = 90)
plt.title(df['지하철역'][0])
plt.show()
df.shape
# (598, 9)
598개의 파이차트를 생성합니다.
for index in range( 597+1 ):
data = df.loc [ index , '유무승차' : '무임하차']
for index in range( 597+1 ):
data = df.loc [ index , '유무승차' : '무임하차']
plt.pie(data, labels = data.index, wedgeprops = {'width':0.7} , startangle = 90)
plt.title(df['지하철역'][0])
plt.show()
728x90
반응형
'AI > 실습' 카테고리의 다른 글
121. [Python] [Pandas] 프로그래밍 실습 : 범죄현장 (1) | 2025.01.25 |
---|---|
120. [Python] [Pandas] 프로그래밍 실습 : 구글맵API 연동 (0) | 2025.01.24 |
119. [Python] [Pandas] 프로그래밍 실습 : (피어슨 상관 계수)CCTV (0) | 2025.01.24 |
118. [Python] [Pandas] 프로그래밍 실습 : CCTV (0) | 2025.01.24 |
116. [Python] [Pandas] 프로그래밍 실습 : 기온데이터 분석 (0) | 2025.01.24 |