๋ทํ๋ฆญ์ค ๊ตฌ๋
ํ์ง ์ด์ธ 2๋
์ฐจ
๋ทํ์ ๊ณต๊ธฐ์ ๊ฐ์ ์กด์ฌ..
๊ทธ๋ฌ๋ ๋ฌธ๋ ๋๋ ์๊ฐ์ด ์์๋ค.
โ ๋๋ ๋ทํ๋ฆญ์ค ๋ณด๋๋ฐ ์ผ๋ง๋ ์๊ฐ์ ์ฐ๊ณ ์๋?
MBTI power J์ธ ๋๋ ์ด ๊ฒ์ด ๊ถ๊ธํด์ก๊ณ ,
โ ๋๋ ์ด ๋ชํธ์ ์๋ฆฌ์ฆ๋ฅผ ๋ดค์๊น?
โ 2021๋
๊ฐ์ฅ ๋ง์ ์๊ฐ์ ํ ์ ํ ๋ทํ ์ฝํ
์ธ ๋?
โ ๋ฌด์จ ์์ผ์ ๊ฐ์ฅ ๋ง์ด ๋ดค์๊น?
โ ์ฃผ๋ก ๋ณด๋ ์๊ฐ๋๋ ์ธ์ ์ธ๊ฐ?
.
.
.
๋ฑ๋ฑ๋ฑ ๋๋ ๊ถ๊ธ์ฆ์ ํด๊ฒฐํด๋ณด๊ณ ์ ์์ํด๋ณธ ๋์ ๋ทํ๋ฆญ์ค ๋ฐ์ดํฐ ๋ถ์
START!
Step 1. ๋ทํ๋ฆญ์ค ๋ฐ์ดํฐ ๋ค์ด๋ก๋ ๋ฐ๊ธฐ
๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์์ง ์ ๋ชจ๋ฅด๊ณ ์์ ๊ฟ์ ๋ณด.
๋ทํ๋ฆญ์ค๋ ๊ตฌ๋
์์ ๋ฐ์ดํฐ๋ฅผ ์์ฃผ ๊ด๋ํ๊ฒ ์ ๊ณตํด์ค๋ค.
์ฌ๊ธฐ์ ์ ์ํด์ ๋ทํ๋ฆญ์ค ์ ๋ณด๋ฅผ ์์ฒญํ๋ฉด ์ ์ผ ๋ด์ ๋ค์ด์ ๋ฐ์ ์ ์๋ค๋ ์ฌ์ค.
๋นจ๊ฐ ๋ฒํผ์ ์์ฒญํ๊ธฐ ํด๋ฆญํ๋ฉด, ๋ทํ๋ฆญ์ค์์ ์ด๋ฉ์ผ์ ํ๋ ๋ณด๋ด์ฃผ๋๋ฐ, ํ์ธํด์ฃผ๋ฉด ์ ์ฒญ ๋.
์ด๊ฑธ ๋ฐ๋ก ๋ฐ์ ์ ์๋ ๊ฒ์ ์๋๊ณ ,
์ฝ 1~3์ผ์ ๋ ๊ฑธ๋ฆฌ๋ ๋ฏ ํ๋ค
๋ค์ด๋ก๋ ๊ธฐํ๋ ์ ํด์ ธ์์ด์ ์ ์ฒญํ๊ณ ๊น๋จน๊ณ ์์ผ๋ฉด ์๋จ
(๊น๋จน๊ณ ์๋ค๊ฐ ๋ค์ด๋ก๋ ๋ง์ง๋ง ๋ ๊ฐ๊น์ค๋ก ๋ค์ด๋ฐ์ ์ฌ๋)
๋ทํ์ 30์ผ๊น์ง๋ ๊ฑธ๋ฆด ์ ์๋ค๊ณ ํจ.
.zipํ์ผ๋ก ๋ค์ด๋ก๋ํ๋ฉด ์ด์
๋ด ๋ทํ ๊ณ์ ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์์๋ค์ด ๋ณผ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ฒ ๋ ๊ฒ์ด๋ค. โบโ(∗โเธฑแดโเธฑ∗)โโบ
ํ์ผ์ ์ด์ด๋ณด๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ฌด์ง๋ง์งํ๊ฒ ๋ง์๋ฐ,
๊ทธ ์ค ํ์ง.pdf (ํน์ cover.pdf)๋ฅผ ์ด์ด๋ณด์.
์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ด๊ธด ํ์ผ๋ค์ ์ ๊ณตํ๋์ง ์น์ ํ๊ฒ ์ค๋ช
ํด์ค๋ค.
๋ทํ๋ฆญ์ค ๋ฐ์ดํฐ์ ์ด๋ค ๋ด์ฉ์ด ๋ด๊ฒผ๋์ง ๊ถ๊ธํ๋ค๋ฉด ๋๋ณด๊ธฐ๋ฅผ ํด๋ฆญ!
p.s. ํ๊ถ ๋ณด๊ณ ์จ๊น์ฒ๋ฆฌํด๋ ์์ฉ์๋ค. ๋ทํ๋ฆญ์ค๋ ๋๊ฐ ํ๊ถ ๋ช ๋ถ ๋ช ์ด ๋ณด๊ณ ์์ฒญ๊ธฐ๋ก์ ์ธ์ ์จ๊นํ๋์ง๋ ์น ๋ค ๋ณด์ฌ์ฃผ๋๊น
์ญ์ ๊ธ๋ก๋ฒ ๋๋ฒ์ ๋ฐ์ดํฐ ํ์ฌ
Step 2. Jupyter์ ๋ถ๋ฌ์ค๊ธฐ
์ ๋ง์ ํ์ผ ์ค ViewingActivity.csv ํ์ผ์ ๋ถ์ํ ์์ ์ด๋ค.
์ด ๋ฐ์ดํฐ๋ค์ ํ์ด์ฌ๊ณผ ํ๋ค์ค๋ฅผ ์ด์ฉํด์ ๋ถ์ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
Jupyter Notebook์ผ๋ก ๋ถ๋ฌ์จ๋ค.
๋ง์ฝ ์ฃผํผํฐ ๋
ธํธ๋ถ๊ณผ ViewingAcitivty.csv ํ์ผ ๊ฒฝ๋ก๊ฐ ๋ค๋ฅธ ๊ณณ์ ์์นํ๋ค๋ฉด, ' ' ์์ ํ์ผ path ๋ฃ์ด์ฃผ๋ ๊ฒ ์์ง๋ง๊ณ ~
import pandas as pd df = pd.read_csv('ViewingActivity.csv')
df๊ฐ ์ ๋ค์ด์๋์ง df.shape์ผ๋ก ํ์ธํ๋ ์์
ํ ๋ฒ ๊ฑฐ์ณ์ฃผ๊ณ
์ด 13981 ํ๊ณผ 10์ด์ด ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
df.head()๋ก ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํด๋ณผ๊น?
์์ฃผ ์ ๋ค์ด์์๋ ๊ฒ์ ๋ณผ ์ ์๋ค (∗โโโ∗)
STEP3. ํ์์๋ ๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ
ํ์์๋ ์ด์ ์ญ์ ํ๋ฉด ํจ์ฌ ๋ ์ ์ ์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๋ถ์ํ ์ ์๋ค.
๋จผ์ ๋ถํ์ํ ์ด์ด ๋ญ๊ฐ ์์๊น ๋ณด๋ฉด..
๋๋ Attribute, Video Type, Bookmark, Country .. ๋ฑ๋ฑ์ด ํ์์์ ๊ฒ ๊ฐ๋ค๊ณ ํ๋จํ๋ค.
์ ๋๋กญ์์ผ์ฃผ์.
#axis=1์ ํ๋ค์ค์์ ์ด ์ญ์ ๋ช
๋ น df = df.drop([ 'Attributes', 'Supplemental Video Type', 'Device Type', 'Bookmark', 'Latest Bookmark', 'Country'], axis=1) df.head(1)
์ ์ด๋ ๊ฒ ์์ฃผ ์ ์ญ์ ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
+ ์, ์ด์ 2021๋ ๋ ๋ฐ์ดํฐ๋ง ๋ฝ์๋ณผ๊น? Start Time์ '2021-'์ด ํฌํจ๋ ๋ฐ์ดํฐ๋ง ์ถ์ถํ๋ฉด ๋๋๊น,
df = df[df['Start Time'].str.contains('2021-')]
Step 4. String์ Datetime๊ณผ Timedelta ํ์ผ๋ก ๋ณํํ๊ธฐ
์ ๊ณผ์ฐ ์ฌ๊ธฐ ์ด๋ค ํํ์ ๋ฐ์ดํฐ ํ์ ๋ค๋ก ๋ค์ด๊ฐ์๋์ง ๋ณผ๊น?
์น ๋ค Object์
๊ทธ๋ผ ๊ณ์ฐ์ ๋ชปํ๋๊น ๋ฐ์ดํฐ ํ๋ณํ์ ํด์ฃผ์.
ํด์ผํ ๊ฒ:
1. Start Time ๋ฐ์ดํฐ๋ฅผ ์๊ฐ ๊ณ์ฐ ๊ฐ๋ฅํ datetime ํ์์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
2. UTC ๊ธฐ์ค์ผ๋ก ์ ํ์๋ Start Time์ KST(ํ๊ตญ ํ์ค์)๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
3. Duration์ ์๊ฐ ๊ณ์ฐ ๊ฐ๋ฅํ timedeltaํ์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
์ฐจ๊ทผํ ํด๋ณด๋ฉด:
1. Start Time ๋ฐ์ดํฐ๋ฅผ ์๊ฐ ๊ณ์ฐ ๊ฐ๋ฅํ datetime ํ์์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ (pd.to_datetime)
df['Start Time'] = pd.to_datetime(df['Start Time'], utc=True) df.dtypes
์ ๋ฐ๋๊ฑฐ ํ์ธํ๊ณ ,
2. UTC ๊ธฐ์ค์ผ๋ก ์ ํ์๋ Start Time์ KST(ํ๊ตญ ํ์ค์)๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ (pd.tz_convert)
ํ์ค์๋ ์ฌ๊ธฐ์ ํ์ธ!
# ๋ฐ์ดํฐํ๋ ์์ ์ธ๋ฑ์ค๋ฅผ Start Time์ด๋ก ๋ฐ๊ฟ์ค๋ค df = df.set_index('Start Time') # UTC timezone์ KST๋ก ๋ฐ๊ฟ์ค df.index = df.index.tz_convert('Asia/Seoul') # Strat Time ๋ค์ ์ด๋ก ๋ณต๊ตฌ df = df.reset_index() #๋๋ธ์ฒต์ฒต df.head(1)
์์ฃผ ์ ๋ฐ๋
3. Duration์ ์๊ฐ ๊ณ์ฐ ๊ฐ๋ฅํ timedeltaํ์ผ๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ (pd.to_timedelta)
df['Duration'] = pd.to_timedelta(df['Duration']) df.dtypes
๋ฐ์ดํฐํ์ด ์์ฃผ ์ ๋ฐ๋ ๊ฒ์ ํ์ธ!
Step 5. ๋ด ๊ณ์ ๋ฐ์ดํฐ๋ง ๋ฝ์๋ด๊ธฐ (optional)
์์ฆ ๋ทํ๋ฆญ์ค ํผ์ ๋ณด์๋ ๋ถ?
๋ณดํต ๋ค ๋ช
์ด ํ ๊ณ์ ์ ์ฌ์ฉํ๋ ์ด ๋ถ๋ถ๋ ๋ฐ์ดํฐ ์ ๋ฆฌ๊ฐ ํ์ํ๋ค!
2๋
๋๊ฒ ํ๊ต ์ฌ๋๋ค๊ณผ ํธ ๊ฒฐ์ฑํด์ ์๋ฌด๋ ์๋๊ฐ๊ณ ์์ฒญ ์ค... (๋ทํ ์ธ์ฐ์ด ์ด๋ ๊ฒ ์ค๋๊ฐ์ค์ด์ผ?)
๊ทธ๋ ๊ธฐ ์ํด ๋ด Profile ๊ณ์ ๋ฐ์ดํฐ๋ง ๋ฝ์๋ด์ผ๊ฒ ์ฅฌ?
ํ๋กํ ๋ค์์ด ์ค๋ ์ค๋ฅผ ํฌํจํ๊ณ ์๋ ๋ฐ์ดํฐ ํ๋ ์์ ๋ง๋ค์ด์ค!
#๋ด ๊ณ์ ๊ฐ๋ง ๊ฐ์ ธ์ด(๋ด ๊ณ์ ์ด๋ฆ oreoeo๋ผ์ dataframe ์ด๋ฆ์ oreoeo๋ก ์คฌ๋ค) oreoeo = df[df['Profile Name'].str.contains('oreoeo', regex=False)] #regex ๋ ์ ๊ท์ ์ฌ๋ถ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ
Step 6. ์๊ณ ํธ ๋ฐ 3๋ถ ๋ฏธ๋ง์ ์์ฒญ ๊ธฐ๋ก์ ์์งํ ๋ดค๋คํ ์ ์์ผ๋ ๋นผ์ฃผ์!
oreoeo = oreoeo[(oreoeo['Duration']>'0 days 00:03:00')]
๊ทธ๋ฐ๋ฐ Title์ด ๋๋ ์๋ก: ์์ฆ 1: 22ํ ์ด๋ฐ ์์ผ๋ก ํ์ฐจ๊น์ง ๋ค์ด์๋ค.
์ด๋ฌ๋ฉด ๋ ๊ณค๋ํ์ง.
์ ๋ชฉ / ์์ฆ / ํ์ฐจ ๋๋ ์ฃผ๊ธฐ ์ํ ์์
์ ํด๋ณด์.
oreoeo["์ ๋ชฉ"] = oreoeo["Title"].str.split(": ", expand=True)[0] oreoeo["์์ฆ"] = oreoeo["Title"].str.split(": ", expand=True)[1]
์๋ก์ด ์ปฌ๋ผ์ ์ ๋ชฉ๊ณผ ์์ฆ์ด ๋๋๊ฑฐ ๋ณด์ด์ฅฌ? โคด
์, ์ด์ 2021๋
๋ Oreoeo ๊ณ์ ์ด ๋ณธ ๋ทํ๋ฆญ์ค ์์ฒญ ๋ฐ์ดํฐ ์ค๋น ์๋ฃ๊ตฌ์
Step 7. ์ด์ ์ฌ์ฌ ๊ถ๊ธ์ฆ์ ๋ต์ ํด๋ณผ๊น?
Q. ๊ทธ๋์ ๋ด๊ฐ 2021๋
์ ๋ทํ๋ฆญ์ค๋ฅผ ์ผ๋ง๋ ๋ดค๋ค๊ณ ??
oreoeo['Duration'].sum()
A: ์,,,, ์ด 21์ผ 1์๊ฐ 32๋ถ 06์ด
๊ฑฐ์ง ์ ๋ ์์๊ณ ํ๋ฌ ๋ด๋ด ๋ทํ๋ฆญ์ค๋ง ๋ดค๋ค๋๊ฑด๋ฐ...
♥๏ธ ์ฌ๋ํด์ ๋ทํ๋ฆญ์ค ♥๏ธ
Q. ์ด ๋ช ํธ์ ์๋ฆฌ์ฆ๋ฅผ ๋ดค๋๋ฐ?
์ด๊ฒ ์ง๊ธ ์ ๋ชฉ์ Unique๊ฐ๋ง ์ธ๋ฉด, ๋ด๊ฐ ๊ฐ์ญ๊ฑธ ์์ฆ1 ์์ฆ2 ์์ฆ3 ์ ํ๋๋ก ์น๋ค๋ณด๋,
์ ๋ชฉ + ์์ฆ ํฉ์น ์ปฌ๋ผ์ ๊ตฌํ ํ์๋ ์์ ๊ฒ ๊ฐ๋จ ์๊ฐ์ด ๋ค์๋ค.
๊ทธ๋์ ์ ๋ชฉ+์์ฆ ์ปฌ๋ผ ํ๋ ๋ ๋ง๋ค์ด์ฃผ๊ณ ์
cols = ['์ ๋ชฉ', '์์ฆ'] oreoeo['์ ๋ชฉ ๋ฐ ์์ฆ'] =oreoeo[cols].apply(lambda row: ':'.join(row.values.astype(str)), axis=1) oreoeo.head()
#์ ๋ชฉ ๋ฐ ์์ฆ unique ๊ฐ์ ๊ฐ์ oreoeo['์ ๋ชฉ ๋ฐ ์์ฆ'].describe()
์ ๋๊ฐ ์ด 99ํธ
A: ๋๋ 2021๋
์ ์ด 99ํธ์ ์๋ฆฌ์ฆ(๋๋ผ๋ง/์ํ/๋คํ ๋ฑ)์ ๋ณด์๋ค. Oh yeah!
Q. ๋ฌด์จ ์์ผ, ๋ช ์์ฏค ์ ์ผ ๋ง์ด ๋ณด๋๊ฑฐ์ง?
๊ฐ๊ฐ ์์ผ, ์๊ฐ ์ปฌ๋ผ ๋ง๋ค์ด์ฃผ๊ณ :
oreoeo = oreoeo.copy() #SettingWithCopyWarning์ ๋ฐ์์ ์๋ฐฉ oreoeo['weekday'] = oreoeo['Start Time'].dt.weekday #์์ผ ์ปฌ๋ผ ์์ฑ oreoeo['hour'] = oreoeo['Start Time'].dt.hour #์๊ฐ ์ปฌ๋ผ ์์ฑ
- ์ฃผ ์์ฒญ ์์ผ์ ์์๋ณด์
#๊ทธ๋ํ ๊ทธ๋ฆฌ๋ matploylib ์ํฌํธ ํด์ฃผ์๊ณ import matplotlib #์์ผ ์๊ฐํ ๊ทธ๋ํ ๋ง๋ค๊ธฐ oreoeo['weekday'] = pd.Categorical(oreoeo['weekday'], categories= [0,1,2,3,4,5,6], ordered=True) oreoeo_by_day = oreoeo['weekday'].value_counts() oreoeo_by_day = oreoeo_by_day.sort_index() oreoeo_by_day.plot(kind='bar', figsize=(20,10), title='Netflix watching Day')
(0๋ถํฐ ์์์ผ ํด์ 6์ด ์ผ์์ผ์ด๋ผ๊ณ ํ๋ค, ํ์ด์ฌ์ด ์๋ ๊ทธ๋ ๋ค๊ณ ํ๋ค)
A: ๋ชฉ์์ผ๋ ์ ์ผ ์ ๊ฒ๋ณด๊ณ , ์ผ์์ผ๋ ์ ์ผ ๋ง์ด ๋ณธ๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ฅ ๋งค์ผ ๋ณด๊ธด ํ๋ค. ๋ท์น๋....
- ์์ฃผ ๋ณด๋ ์๊ฐ๋๋ฅผ ์์๋ณด์
#์๊ฐ๋ ์๊ฐํ oreoeo['hour'] = pd.Categorical(oreoeo['hour'], categories= [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23], ordered=True) oreoeo_by_hour = oreoeo['hour'].value_counts() oreoeo_by_hour = oreoeo_by_hour.sort_index() oreoeo_by_hour.plot(kind='bar', figsize=(20,10), title='Netflix watching by Hour')
A: ์๋ฒฝ ํ ์์ ์ฃผ๋ก ๋ณด๊ธฐ ์์ํ๊ณ , ์์นจ 8์์ ๊ฐ์ฅ ์ ๊ฒ ๋ณธ๋ค..
Q. ์ํ๋ณ ์์ฒญ ์๊ฐ ๋ฐ์ดํฐ๊ฐ ๊ถ๊ธํ๋ค๋ฉด?
oreoeo_duration_by_title = oreoeo_duration_by_title.groupby(['์ ๋ชฉ','์์ฆ']).agg({'Duration':np.sum}) oreoeo_duration_by_title = oreoeo_duration_by_title.reset_index() #์ธ๋ฑ์ค ๋ค์ ์ ์๋ฆฌ๋ก ๋๋ ค๋๊ณ oreoeo_duration_by_title
์ด๋ ๊ฒ ์์ ํ๋ฅผ ์ป์ ์ ์๋ค!
A: D.P๋ฅผ 10์๊ฐ์ด๋ ๋ณธ๊ฑด... ์๋ง... ๋ ๋ณด๊ณ ์๋ง๋ ๋ด ๊ณ์ ์ผ๋ก ๋ณด์ฌ์คฌ๊ธฐ ๋๋ฌธ์ธ๋ฏ
- ์ด๊ฒ๋ ๊ทธ๋ํ๋ก ๊ทธ๋ ค๋ณด์
timedelta ํ์์ ๊ฐ์ ๊ทธ๋ํ๋ก ํํํ ์ ์๋ค. (์๊น ์ฐ๋ฆฌ Duration ์ Timedelta๊ฐ์ผ๋ก ๋๊ฑฐ ๊ธฐ์ตํ์๋์ง?)
๊ทธ๋์ ์ด๊ฑธ int๋ก ๋ค์ ๋ฐ๊ฟ์ฃผ๋ ์์
์ ํด์ผํ๋๋ฐ,
๋ถํํ๊ฒ๋ timedelta๋ฅผ int๋ก ๋ฐ๊พธ๋ ๋ฒ์ days ์ seconds๋ง ๋ผ์ int๋ก ๋ฐ๊พธ๋ ๋ฒ๋ฐ์ ์๋์์
days์ seconds๋ฅผ ๋ฐ๋ก ๊ตฌํ๊ณ , days๋ฅผ ์ด๋ก ๋ณํํด์ seconds์ ๋ํ๋ ๋ฐฉ์์ ์ฌ์ฉํด๋ณด๊ธฐ๋ก ํ๋ค.
๋ฌด์จ ๋ง์ด๋๋ฉด, ๋น์ผ์กฐ ์์ฒญ ์๊ฐ์ด 1 days 00:01:40 ์ด๋ผ๊ณ ํ๋ฉด,
td.seconds ๋ฅผ ์ฐ๋ฉด 60์ด + 40์ด = 100 ์ด ๋ง int๋ก ๋ฐํํด์ฃผ๊ณ ,
td.days๋ฅผ ์ฐ๋ฉด 1 ๋ง ๋ฐํํด์ค์
1 day = 86400 ์ด์ด๋ฏ๋ก,
td.day * 86400 + td.seconds๋ฅผ ํด์ฃผ๊ธฐ๋ก ํ ๊ฒ
oreoeo_duration_by_title['Duration_d'] = oreoeo_duration_by_title['Duration'].dt.days #day ์นผ๋ผ ์ถ๊ฐ oreoeo_duration_by_title['Duration_s'] = oreoeo_duration_by_title['Duration'].dt.seconds #second ์นผ๋ผ ์ถ๊ฐ oreoeo_duration_by_title['Duration_sum'] = (oreoeo_duration_by_title['Duration_d'] * 86400) + (oreoeo_duration_by_title['Duration_s']) #์ด ๋ช ์ด ๋ดค๋์ง day + second ํฉ #oreoeo_duration_by_title์๋ ์ ๋ชฉ ๋ฐ ์์ฆ ์ปฌ๋ผ ์ถ๊ฐํด์ฃผ๊ณ cols = ['์ ๋ชฉ', '์์ฆ'] oreoeo_duration_by_title['์ ๋ชฉ ๋ฐ ์์ฆ'] =oreoeo_duration_by_title[cols].apply(lambda row: ':'.join(row.values.astype(str)), axis=1)
์ด์ ์ด๊ฑธ ๊ทธ๋ํํ ์์ผ๋ณด๋ฉด
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'AppleGothic'#๊ทธ๋ํ์ ํ๊ธ ํฐํธ ์ค์นํด์ฃผ๊ณ #๋ด๋ฆผ์ฐจ์์ผ๋ก ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ ์ํด์ ascending ๊ฐ ์ฃผ๊ณ oreoeo_duration_by_title = oreoeo_duration_by_title.sort_values(by=['Duration_sum'], ascending = True) #๊ทธ๋ํ ๊ฐ๋ก๋ก ๊ทธ๋ฆด๊ฑฐ๋ผ barh, ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ๋ง์ด์ฌ figsize๋ก ํ ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํด์คฌ๋ค, ๊ทธ๋ฆฌ๊ณ ์์๊ณผ ์ฐํ๊ธฐ๋! oreoeo_duration_by_title.plot.barh(x ='์ ๋ชฉ ๋ฐ ์์ฆ', y='Duration_sum',figsize=(20,30),fontsize=10,color='r', alpha=0.4)
์ด๋ฐ ์๋๋ฃฉ ๋บต๋บต ๊ทธ๋ํ๋ฅผ ๋ณผ ์ ์๋๋ฐ,
๋์ด ์นจ์นจํ๋ pdf๋ก ๋ค์ด๋ฐ์๋ณด๊ธฐ๋ก ํ์
plt.savefig('2021 Netflix์์ฒญ๋ฐ์ดํฐ.pdf')
์จ!
์ฃผํผํฐ ๋
ธํธ๋ถ ํ์ผ์ด ์๋ ํด๋์ ๋ด๊ฐ ๋ง๋ ๊ทธ๋ํ ํ์ผ์ด ์๊ฒผ์ด์ ๋ฟ
2021 ๋์ ๋ทํ๋ฆญ์ค ์ํ ์๊ฐ ๋๋ ์ฃผ์ธ๊ณต์ ๋ฐ๋ก
๋๋๊ตฌ๋๊ตฌ๋๊ตฌ๋๊ตฌ
๋น์ผ์กฐ์์ด๋ค ๐๐๐๐
์ ์ด๋ ๊ฒ ์์ฒญ์๊ฐ์ด ์ ๋
๊ธธ์ง? ํ๋๋ฐ
3์์ ํ ๋ฒ, 5์์ ํ ๋ฒ ์ ์ฃผํํ ๊ธฐ๋ก์ด ๋ ๋ฒ์ด๋ ์๋๋ผ๊ตฌ
๊ฐ์ธ์ ์ผ๋ก ๋น์ผ์กฐ๋ ๋จ์ฃผ์ํฑ๋ฌผ์ ์ ์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด ์๊ด์ ๋๋ฒ์ ์ฝ๋ฆฌ์ ๋คํฌ ํ์ด๋ก ๋น์ผ์กฐ ๊น์ฌ๋
ธ,
๊ทธ๋ฆฌ๊ณ ์๋ค ์ฃฝ์ ์ก์ค๊ธฐ ๋ฐฐ์ฐ๋๊ป ๋ฐ์นฉ๋๋ค...๐
+ ์์ฆ ๊ทธํด์ฐ๋ฆฌ๋์ ์ง์
์ด๋ก ์๋ จ์๋ จ ์ฒ ์ฒ ๋์น๋ ๋์ ์ํฝ ๊น์ฑ์ฒ ๋ฐฐ์ฐ๋๊ป๋ ์ด ์๊ด์...๐ค
์ ์ด์ ์ง๋ฌธ์ ์ ๋ฆฌํด์ ๋ต์ ํด๋ณด์
โ ๋๋ ๋ทํ๋ฆญ์ค ๋ณด๋๋ฐ ์ผ๋ง๋ ์๊ฐ์ ์ฐ๊ณ ์๋? --> ์์ํ๊ฒ ์์ฒญ ์๊ฐ๋ง 21์ผ 1์๊ฐ 32๋ถ 06์ด
โ ๋๋ ์ด ๋ชํธ์ ์๋ฆฌ์ฆ๋ฅผ ๋ดค์๊น? --> 99ํธ
โ 2021๋
๊ฐ์ฅ ๋ง์ ์๊ฐ์ ํ ์ ํ ๋ทํ ์ฝํ
์ธ ๋? --> ๋น์ผ์กฐ
โ ๋ฌด์จ ์์ผ์ ๊ฐ์ฅ ๋ง์ด ๋ดค์๊น? --> ์ผ์์ผ
โ ์ฃผ๋ก ๋ณด๋ ์๊ฐ๋๋ ์ธ์ ์ธ๊ฐ? --> ์๋ฒฝ ํ ๋ ์
2021๋
์ Wavve, Tving, ์์ฐจ, Youtube ๊ทธ๋ฆฌ๊ณ ๋ณธ๋ฐฉ ์์ฒญ ๋น์จ๋ ๊ฝค ๋์๊ธฐ ๋๋ฌธ์
์ฝํ
์ธ ์์ฒญ ์๊ฐ์ ์ด๊ฒ๋ณด๋ค ๋ ๊ธธ์๊ฒ ์ง
์ฌ์ค ์์ฆ์ ๋ทํ๋ณด๋ค ํฐ๋น์ด๋ ์จ์ด๋ธ ๋ง์ด ๋ณธ๋ค.
์ง๋ฆฌ์ฐ, ์ ๋๋
, ์ฒญ์๋, ์ท์๋งค ๋ค ์จ์ด๋ธ๋ ํฐ๋น
์ท์๋งค๊ฐ ๋ทํ ์๋ค์ด๊ฐ๊ฒ ๋ ์์ฌ์ธ ๋ฐ๋ฆ์ด๋ค.
์ฌ๊ทน ์ข์ํ๋ ๊ธ๋ก๋ฒ ์์ฅ ํ๊ฒ ์ ๋๋ก ํ ์ํ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ ใ
๊ทธ๋์ ๋
ํฐ๋น / ์จ์ด๋ธ๋ ๋ฐ์ดํฐ์ข ์ฃผ์ค๋์? ใ
2022๋ ํ์๋ก์ด ์ฝํ
์ธ ๋ก ํ๋ณต์ ์ฑ์๊ฐ ์์
2022 ์ํ์ ๋๊ฐ๋๋ ค๋~~~~
์ฌ๋ํด์ ๋ทํ๋ฆญ์ค
๋ทํ๋ฆญ์ค ์
์ฌํ๊ณ ์ถ๋ค
๋
* ์ฐธ๊ณ ์๋ฃ : https://support.dataquest.io/en/articles/366
'Coding > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] Module (0) | 2022.03.07 |
---|---|
๋ฐ์ดํฐ ์ ์ฅ์ ์ธ์ฝ๋ฉ ์ค๋ฅ (0) | 2022.02.21 |
[Python] ์ฐ์ต๋ฌธ์ (๋ฌธ์ฅ ๋ง๋ค๊ธฐ) (0) | 2021.12.30 |
[Python] *args, **kwargs (0) | 2021.12.30 |
[python] list Comprehension, ์ผํญ ์ฐ์ฐ์ (0) | 2021.12.29 |