๋ฌ๋์คํผ์ฆ ์์ ์ ๋ฆฌ
< ์ด์ ๊ธ >
https://silvercoding.tistory.com/57
[์๊ฐํ ๋ถ์ ํ๋ก์ ํธ] 2-1 pandas๋ก ์ฌ๋ฌ csv ํ์ผ ํฉ์น๊ธฐ
๋ฌ๋์คํผ์ฆ ์์ ์ ๋ฆฌ < ์ด์ ๊ธ > https://silvercoding.tistory.com/56 https://silvercoding.tistory.com/55 https://silvercoding.tistory.com/54 https://silvercoding.tistory.com/53 https://silvercoding...
silvercoding.tistory.com
๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ & ์ดํด๋ณด๊ธฐ
import pandas as pd
raw = pd.read_excel('./data/subway_raw.xlsx')
raw.head()
์ด์ ๊ธ์์ ๋ณํฉํ๋ ํ์ผ์ ๋ถ๋ฌ์ ์ค๋ค.
raw.info()
์ด 99342๊ฐ์ row๊ฐ ์กด์ฌํ๊ณ , null๊ฐ์ด ์๋ ๊ฒ์ ์ ์ ์๋ค.
์น๊ฐ์ด ๋ง์์ง๋ ๋ ์ ์ธ์ ์ธ๊ฐ ?
- ์ผ์ , ์์ผ ๋ณ ์น์ฐจ์ด์น๊ฐ์ ํ์ธ ํด ๋ณด๊ธฐ
data_date = pd.pivot_table(raw, index = ['์ฌ์ฉ์ผ์', '์์ผ'], values= '์น์ฐจ์ด์น๊ฐ์', aggfunc= 'sum')
data_date.head()
- ์ผ์ , ์์ผ ๋ณ ์น์ฐจ์ด์น๊ฐ ์ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
data_date_sort = data_date.sort_values(by = '์น์ฐจ์ด์น๊ฐ์', ascending= False)
data_date_sort
์ผ์, ์์ผ ๋ณ ์น์ฐจ์น๊ฐ์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ ํด ๋ณด์๋ค. ์ด ๊ฒฐ๊ณผ์ ๋ํ ๋ฐ์ดํฐํ๋ ์์ ํ์ธํด ๋ณด๋ฉด ๋๊ฐ์ง ๊ฐ์ ์ ์ธ์ธ ์ ์๋ค.
1. 5์์ ์งํ์ฒ ์น๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง๋ค.
2. ๊ธ์์ผ์ ์งํ์ฒ ์น๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง๋ค.
(1) 5์์ ์งํ์ฒ ์น๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง๋ค
- '์ฐ์' ์ปฌ๋ผ , '์์ผ' ์ปฌ๋ผ ์ถ๊ฐ
yearmonth_list = []
monthday_list = []
for date in raw['์ฌ์ฉ์ผ์']:
yearmonth = str(date)[:6] # ์ผ์ชฝ๋ถํฐ 6์๋ฆฌ ๋ฌธ์ ์ ํ
yearmonth_list.append(yearmonth)
monthday = str(date)[4:] # ์ผ์ชฝ์์ 5๋ฒ์งธ ๋ฌธ์๋ถํฐ ๋๊น์ง ์ ํ
monthday_list.append(monthday)
# ์ฐ์/ ์์ผ ์ปฌ๋ผ ์ถ๊ฐํ๊ธฐ
raw['์ฐ์'] = yearmonth_list
raw['์์ผ'] = monthday_list
raw.head()
์ ๋ณ ์น๊ฐ์๋ฅผ ๋ณด๊ธฐ ์ํด ์ฌ์ฉ์ผ์๋ฅผ ์ฐ์, ์์ผ๋ก ๋๋์ด ์๋ก์ด ์ปฌ๋ผ์ ์ถ๊ฐํ์๋ค.
data_month = pd.pivot_table(raw, index = '์ฐ์', values = '์น์ฐจ์ด์น๊ฐ์', aggfunc='sum')
data_month = data_month.sort_values(by = '์น์ฐจ์ด์น๊ฐ์', ascending= False)
data_month
์๋ณ ์น์ฐจ์ด๊ฐ์ ํผ๋ฒ๋ฐ์ด๋ธ์ ์์ฑํ๊ณ , ์น์ฐจ์ข ์น๊ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ํด๋ณด๋ , 5์์ ๊ฐ์ฅ ์น๊ฐ์๊ฐ ๋ง์ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๊ฒฐ๋ก -> 5์์ ์งํ์ฒ ์น๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง๋ค : True
(2) ๊ธ์์ผ์ ์งํ์ฒ ์น๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง๋ค
data_week = pd.pivot_table(raw, index = '์์ผ', values = '์น์ฐจ์ด์น๊ฐ์', aggfunc='sum')
data_week = data_week.sort_values(by = '์น์ฐจ์ด์น๊ฐ์', ascending= False)
data_week
์์ผ๋ณ ์น์ฐจ์ด๊ฐ์ ํผ๋ฒํ ์ด๋ธ์ ์์ฑํ๊ณ , ์น์ฐจ์ด์น๊ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ํด๋ณด๋ ๊ธ์์ผ์ ์น๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง์ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๊ฒฐ๋ก -> ๊ธ์์ผ์ ์งํ์ฒ ์น๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง๋ค : True
* ์๋ณ / ์ผ์๋ณ ์น๊ฐ์ ๊ทธ๋ํ ์๊ฐํ
- 2019๋ 1์ ๋ฐ์ดํฐ๋ก ํ ์คํธ ํด๋ณด๊ธฐ
df_selected = raw[ raw['์ฐ์'] == '201901']
df_selected.head()
df_pivot = pd.pivot_table(df_selected, index = ['์์ผ','์์ผ'], values = '์น์ฐจ์ด์น๊ฐ์', aggfunc= 'sum')
df_pivot = df_pivot.reset_index()
df_pivot
2019๋ 1์ ๋ ์ง๋ณ ์น์ฐจ์ด์น๊ฐ์๋ฅผ ์ง๊ณํ๋ ํผ๋ฒํ ์ด๋ธ์ ์์ฑํ๋ค. ์ด๋ฅผ pointplot์ ์ฌ์ฉํ์ฌ ์๊ฐํ ํด๋ณด์.
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import font_manager, rc
import platform
# ํ๊ธ ํฐํธ ์ฌ์ฉ
if platform.system() == 'Windows':
path = 'c:/Windows/Fonts/malgun.ttf'
font_name = font_manager.FontProperties(fname=path).get_name()
rc('font', family=font_name)
elif platform.system() == 'Darwin':
rc('font', family='AppleGothic')
fig, ax = plt.subplots( figsize=(20,6) )
# ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
sns.pointplot(data = df_pivot, x = '์์ผ', y = '์น์ฐจ์ด์น๊ฐ์')
fig, ax = plt.subplots( figsize=(20,6) )
# ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
sns.pointplot(data = df_pivot, x = '์์ผ', y = '์น์ฐจ์ด์น๊ฐ์')
1์ ๊ทธ๋ํ๋ง ๊ทธ๋ ค๋ณด์๋๋ , ๊ธ์์ผ์ ๊ฐ์ฅ ๋ง์ ์น๊ฐ์๋ฅผ ์ฐ๊ณ , ๊ทธ ์ดํ๋ก ์ค์ด๋ค์ด ์ผ์์ผ์๋ ์น๊ฐ์๊ฐ ๋ํญ ์ค์ด๋๋ ๊ฒฝํฅ์ ๋ณด์ธ๋ค. ๋งค ๋ฌ๋ง๋ค ํธ์ฐจ๊ฐ ์๋์ง ํ์ธํ๊ธฐ ์ํด 1-6์์ ๋ ์ง๋ณ ์น๊ฐ์ ์๊ฐํ๋ฅผ ํด๋ณธ๋ค.
- ์๋ฐ๊ธฐ ๋ ์ง๋ณ ์น๊ฐ์ ์๊ฐํ
raw['์ฐ์'].unique()
for yearmonth in raw['์ฐ์'].unique():
df_selected = raw[ raw['์ฐ์'] == yearmonth] # ํด๋น ์ฐ์ ๋ฐ์ดํฐ ์ ํํ๊ธฐ
df_pivot = pd.pivot_table(df_selected, index = ['์์ผ','์์ผ'], values = '์น์ฐจ์ด์น๊ฐ์', aggfunc= 'sum')# ์ผ์๋ณ ์น๊ฐ์ ๊ณ
df_pivot = df_pivot.reset_index()
fig, ax = plt.subplots( figsize=(20,6) )
ax.set_title(f'์ผ์๋ณ ์งํ์ฒ ์น๊ฐ์({yearmonth})') # ๊ทธ๋ํ ์ ๋ชฉ ์ถ๊ฐํ๊ธฐ
sns.pointplot(data = df_pivot, x = '์์ผ', y = '์น์ฐจ์ด์น๊ฐ์')
ํด์ : ์ ์ฒด์ ์ผ๋ก ํํ๊ฐ ๋น์ทํ ๊ฒ์ ๋ณผ ์ ์๋ค. ๊ธ์์ผ ์ดํ ์ฃผ๋ง์๋ ์น๊ฐ์๊ฐ ๋จ์ด์ง๊ณ , ์ผ์์ผ์ ๋ํญ ํ๋ฝํ๋ ๊ฒฝํฅ์ ๋ณด์ธ๋ค. 2์๋ฌ์ ๋ณด๋ฉด ์ค์ฐํด๋ก ์ธํด์ 2์ ์ด ์ฃผ์ค์๋ ์น๊ฐ์์ ์๊ฐ ๋ฎ์ผ๋ฉฐ , 6์ 6์ผ ํ์ถฉ์ผ์๋ ์น๊ฐ์๊ฐ ๋จ์ด์ง๋ ํ์ ๋ํ ํ์ธํ ์ ์๋ค. ์ด๋ฅผ ํตํด ์งํ์ฒ ์น๊ฐ์๋ ๊ณตํด์ผ์ ์ํฅ์ ๋ฐ๋๋ค๊ณ ํด์ํ ์ ์๋ค.