๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋งˆ์ผ€ํŒ…/๋ฐ์ดํ„ฐ ๋ถ„์„22

RFM ๋ถ„์„ RFM ๋ถ„์„์ด๋ž€RFM์€ Recency, Frequency, Monetary ๊ฐ๊ฐ์˜ ์•ž ๊ธ€์ž๋ฅผ ๋”ฐ์„œ ๋งŒ๋“ค์–ด์ง„ ์•ฝ์ž์ด๋‹ค.Recency: ๊ณ ๊ฐ์ด ์–ผ๋งˆ๋‚˜ ์ตœ๊ทผ์— ์ƒํ’ˆ์„ ๊ตฌ๋งคํ–ˆ๋Š”๊ฐ€?Frequency: ๊ณ ๊ฐ์ด ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ์ƒํ’ˆ์„ ๊ตฌ๋งคํ–ˆ๋Š”๊ฐ€?Monetary: ๊ณ ๊ฐ์ด ์ƒํ’ˆ ๊ตฌ๋งค์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ˆ์„ ์ผ๋Š”๊ฐ€?RFM ๋ถ„์„์„ ํ•œ๋‹ค๋Š” ๊ฑด ์œ„ ์„ธ ํ•ญ๋ชฉ์„ ํ† ๋Œ€๋กœ ๊ณ ๊ฐ์˜ ๊ฐ€์น˜๋ฅผ ํŒ๋‹จํ•ด ๊ณ ๊ฐ์„ ๋ถ„๋ฅ˜ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ๋” ์ตœ๊ทผ์— ๊ตฌ๋งคํ• ์ˆ˜๋ก, ๋” ์ž์ฃผ ๊ตฌ๋งคํ• ์ˆ˜๋ก, ๊ทธ๋ฆฌ๊ณ  ๋ˆ์„ ๋” ๋งŽ์ด ์“ธ์ˆ˜๋ก ๊ฐ€์น˜๊ฐ€ ํฐ ๊ณ ๊ฐ์œผ๋กœ ์—ฌ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ) ์ตœ๊ทผ 1๋…„ ๋™์•ˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‘ ๊ณ ๊ฐ์˜ ๊ตฌ๋งค ํŒจํ„ด์„ ๋น„๊ตํ•œ๋‹ค. ๊ณ ๊ฐ A๋Š” ๊ณ ๊ฐ B๋ณด๋‹ค ๋” ์ตœ๊ทผ์— ์ƒํ’ˆ์„ ๊ตฌ๋งคํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณ ๊ฐ A๋Š” ๊ณ ๊ฐ B์— ๋น„ํ•ด 1๋…„ ๋™์•ˆ ๊ตฌ๋งค ํšŸ์ˆ˜๋„ ๋งŽ๊ณ  ๊ตฌ๋งค ๊ธˆ์•ก๋„ ๋” ํฌ๋‹ค. Re.. 2025. 3. 17.
[ํŒŒ์ด์ฌ] ๊ทธ๋ฃน๋ณ„๋กœ ๋ถ„์„ํ•˜๊ธฐ Groupby๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.์ •๋ณด๋“ค์„ ๋ณธ๋‹ค. ๊ฒฐ์ธก๊ฐ’์€ ์—†๋‹ค. groupby()์žฅ๋ฅด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์ค€๋‹ค.count()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋ณด์—ฌ์ค€๋‹ค.size()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์‹œ๋ฆฌ์ฆˆ๋กœ ๋ณด์—ฌ์ค€๋‹ค. ์ตœ์†Œ, ์ตœ๋Œ€, ํ‰๊ท , ํ•ฉ๊ณ„ ๋ชจ๋‘ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. numeric_only๋Š” ์ˆซ์ž๋งŒ ๋ณด์—ฌ์ฃผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค.์ง€๊ธˆ๊นŒ์ง€ ๋Ÿฐํƒ€์ž„๊ณผ ์Šค์ฝ”์–ด๊ฐ€ ๊ฐ™์ด ๋‚˜์™”๋Š”๋ฐ ์Šค์ฝ”์–ด๋งŒ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด []๋ฅผ ์ด์šฉํ•œ๋‹ค.๋ฌผ๋ก  [] ์•ˆ์— ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ๋ช…์„ ๋„ฃ์„์ˆ˜๋„ ์žˆ๋‹ค. ์‹ค์Šตimport pandas as pdolympic_df = pd.read_csv('data/olympic.csv')# ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.olympic_df.groupby('sport')['height', 'weight'].mean()cat.. 2025. 3. 14.
[ํŒŒ์ด์ฌ] ๋ฐ์ดํ„ฐ ํ•ฉ์น˜๊ธฐ ๊ฐ™์€ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ ํ•ฉ์น˜๊ธฐ : concat()๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค์–ด์คฌ๋‹ค.๊ฐ๊ฐ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ํ™•์ธํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.์–ด์ฐจํ”ผ ๊ฐ™์€ ์˜์–ด ์ ์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด๋ผ ๋‘๊ฐœ๋ฅผ ํ•ฉ์นœ๋‹ค.concat()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ์ธ๋ฑ์Šค๊ฐ€ ์ด์ƒํ•˜๊ฒŒ ๋‚˜์˜จ๋‹ค.ignore_indexํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด True๋กœ ์ง€์ •ํ•ด์ฃผ๋ฉด ์ธ๋ฑ์Šค๋„ ๊น”๋”ํ•˜๊ฒŒ ๋‚˜์˜จ๋‹ค.์ด๋ฅผ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๋กœ ์ €์žฅํ•ด์ค€๋‹ค. ์ด๋ฒˆ์—๋Š” ์ˆ˜ํ•™์ ์ˆ˜ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค.์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜๋ฅผ ํ•ฉ์ณ์ฃผ์—ˆ๋”๋‹ˆ ๊ทธ๋ƒฅ ์ปฌ๋Ÿผ ํ•˜๋‚˜๋ฅผ ๋” ๋งŒ๋“ค์–ด ๋ถ™์˜€๋‹ค. ์ด์ƒํ•œ ๊ฒฐ๊ณผ๋‹ค.axis=1 ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜†์œผ๋กœ ๋ถ™์—ฌ์ค€๋‹ค. ์‹ค์Šตimport pandas as pdsales_2020_df = pd.read_csv('data/sales_2020.csv')sales_2021_df.. 2025. 3. 14.
[ํŒŒ์ด์ฌ] ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๊ธฐ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์„ค์ •ํ•˜๊ธฐ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ํ™•์ธํ•ด๋ณธ๋‹ค.order_time๊ณผ shiping_time์ด ์˜ค๋ธŒ์ ํŠธ๋กœ ๋˜์–ด ์žˆ๋‹ค. to_datetime()ํŒ๋‹ค์Šค์—๋Š” ๋ฐ์ดํŠธํ•จ์ˆ˜ ํƒ€์ž…์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค. order_time๊ณผ shiping_time์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฐ”๊ฟ”์„œ ์ €์žฅํ•ด์ฃผ๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๋ฉด ํƒ€์ž…์ด ๋ฐ”๋€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ์ง€์ •ํ•ด์„œ ๋ถˆ๋Ÿฌ์˜ฌ์ˆ˜๋„ ์žˆ๋‹ค. ํ˜„์žฌ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋ณด๋ฉด ๊ฒฐ์ธก๊ฐ’์ด ํ•˜๋‚˜ ์žˆ๋‹ค.๊ฒฐ์ธก๊ฐ’์ด ๋” ์—†๋Š”์ง€ ํ™•์ธํ•ด๋ณด๋‹ˆ 1๊ฐœ๋งŒ ์žˆ๋‹ค.1๊ฐœ๋งŒ ์žˆ์œผ๋‹ˆ๊นŒ ๊ทธ๋ƒฅ ์ง€์›Œ์ค€๋‹ค. dt.date์›ํ•˜๋Š” ๋‚ ์งœ, ์—ฐ๋„, ์›”, ์ผ, ์‹œ๊ฐ„, ๋ถ„, ์ดˆ, ์š”์ผ ๋“ฑ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.์ด๋•Œ ๋ฌธ์ž์—ด์—” str์„ ์“ด ๊ฒƒ์ฒ˜๋Ÿผ dt๋ฅผ ์จ์ค€๋‹ค.dayofweek๋Š” ์š”์ผ์„ ์˜๋ฏธํ•œ๋‹ค. .. 2025. 3. 14.
[ํŒŒ์ด์ฌ] ์ˆซ์ž ๋ฐ์ดํ„ฐ ๊ฐ€๊ณตํ•˜๊ธฐ ์ƒˆ๋กœ์šด ๊ฐ’ ๊ณ„์‚ฐํ•˜๊ธฐ ๊ธฐ์กด ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ํ—ˆ๋ฆฌ๋‘˜๋ ˆ/์—‰๋ฉ์ด ๋‘˜๋ ˆ๋กœ ๋น„๋งŒ๋„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. round()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์†Œ์ˆ˜์  2๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ํ‘œ์‹œ๋˜๊ฒŒ ๋งŒ๋“ ๋‹ค. ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์„ ๋งŒ๋“ค์–ด ์ €์žฅํ•ด์ค€๋‹ค. ์ด๋Ÿฐ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋กœ ๋น„๋งŒ๋„์™€ ๋‹น๋‡จ(diabetes) ์‚ฌ์ด์— ์–ด๋–ค ์ƒ๊ด€๊ด€๊ณ„๊ฐ€ ์žˆ๋Š”์ง€๋„ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ์‹ค์Šต 1 import pandas as pdpatient_df = pd.read_csv('data/patient.csv')# ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.bmi = round(patient_df['weight'] / (patient_df['height'] * patient_df['height']), 1)patient_df['bmi'] = bmipatient_df ์ œ๊ณฑ์„ **2๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ž๋‹ค. ๊ธฐ์–ตํ•ด๋‘ฌ์•ผ์ง€. .. 2025. 3. 14.
[ํŒŒ์ด์ฌ] ๋ฌธ์ž ๋ฐ์ดํ„ฐ ๊ฐ€๊ณตํ•˜๊ธฐ ๋Œ€์†Œ๋ฌธ์ž ์ฒ˜๋ฆฌํ•˜๊ธฐ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋‹จ์–ด๋“ค์ด ๋Œ€๋ฌธ์ž, ์†Œ๋ฌธ์ž ๋‹ค ์„ž์—ฌ ์žˆ๋‹ค. str.lower()๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ str.upper()๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ str.capitalize()์•ž๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ  ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์— ์ ์šฉ ๋ฌธ์ž์—ด ๋ถ„๋ฆฌํ•˜๊ธฐ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ str.split('๊ตฌ๋ถ„์ ')ํ•ด๋‹น ํ•จ์ˆ˜๋กœ ๋ฌธ์ž์—ด์„ ๋‚˜๋ˆ„์–ด์ค€๋‹ค. ๋‚˜๋ˆˆ ๋ฌธ์ž์—ด์˜ 0๋ฒˆ ์ธ๋ฑ์Šค ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์— ์ €์žฅํ•œ๋‹ค. ๋‚˜๋ˆˆ ๋ฌธ์ž์—ด์˜ 1๋ฒˆ ์ธ๋ฑ์Šค ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์— ์ €์žฅํ•œ๋‹ค. ์›๋ž˜ ๋‚˜๋ˆ„๊ธฐ ์ „ ๋ฌธ์ž์—ด ์ปฌ๋Ÿผ์„ ์‚ญ์ œํ•œ๋‹ค. ๋ถˆํ•„์š”ํ•œ ๋ฌธ์ž ์ œ๊ฑฐํ•˜๊ธฐ ์›ํ•˜๋Š” ๊ฐ’์ด ์•ˆ๋‚˜์˜จ๋‹ค. unique()ํ•จ์ˆ˜๋กœ ํ™•์ธํ•ด๋ณด๋‹ˆ ์•ž์— ๊ณต๋ฐฑ๋„ ์žˆ๊ณ , ๋’ค์— .๋„ ์žˆ๋‹ค. str.strip() ์œ„ ํ•จ์ˆ˜๋ฅผ ์จ์„œ ๊ณต๋ฐฑ์„ ์—†์• ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €์žฅํ•ด์ค€๋‹ค. str.replace(.. 2025. 3. 13.
[ํŒŒ์ด์ฌ] ๋ฐ์ดํ„ฐ ๋‹ค๋“ฌ๊ธฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ๋Œ€๋กœ ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ด์ƒํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค.์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋“ฌ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.  ๊ฒฐ์ธก๊ฐ’ ์ฐพ๊ธฐ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ info()๊ฒฐ์ธก๊ฐ’ ์ฐพ๋Š” ๋ฒ• 1713๊ฐœ์˜ row ์ค‘์— rating(๋ณ„์ )๋งŒ 700๊ฐœ๋ผ๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค. isna()๊ฒฐ์ธก๊ฐ’์ด ์žˆ์œผ๋ฉด True, ์—†์œผ๋ฉด False ๋กœ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์œผ๋กœ ๋ณด์—ฌ์ค€๋‹ค. isna().sum()๊ทธ๋ƒฅ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋ณด๋ฉด ๋ถˆํŽธํ•˜๋‹ค.sum()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์—์„œ true ๊ฐ’(1)์„ ๋”ํ•ด์ค€๋‹ค. rating์— 13๊ฐœ์˜ ๊ฒฐ์ธก๊ฐ’์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. isna().any(axis=1)๋ชจ๋“  row๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ํ•จ์ˆ˜0ํ–‰๋ถ€ํ„ฐ 712ํ–‰๊นŒ์ง€ ๊ฒฐ์ธก๊ฐ’์ด ์žˆ๋Š” ํ–‰์€ True๋กœ ๋ณด์—ฌ์ค€๋‹ค. ์œ„์—์„œ ์ฐพ์€ ๊ฐ’๋งŒ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๊ฐ€์ ธ์˜ค๋ฉด ๊ฒฐ์ธก๊ฐ’์ด ์žˆ๋Š” row๋งŒ ์ถœ๋ ฅ๋œ๋‹ค.๋ฐ์ดํ„ฐ๋ฅผ .. 2025. 3. 13.
[ํŒŒ์ด์ฌ] DataFrame ๊ธฐ๋ณธ๊ธฐ DataFrame ์‚ดํŽด๋ณด๊ธฐ  info()๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ •๋ณด ํ™•์ธํ•˜๊ธฐ describe()๋ฐ์ดํ„ฐ ํ†ต๊ณ„๋Ÿ‰ ํ™•์ธํ•˜๊ธฐ include='all' (ํŒŒ๋ผ๋ฏธํ„ฐ)๋ชจ๋“  ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ์š”์•ฝ sort_values(by='์นผ๋Ÿผ๋ช…')ํŠน์ • ์นผ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ (๊ธฐ๋ณธ์ด ์˜ค๋ฆ„์ฐจ์ˆœ)๋‚ด๋ฆผ์ฐจ์ˆœ ๊ธฐํƒ€๊ด„ํ˜ธ๊ฐ€ ๋ถ™์–ด์žˆ๋Š” ๊ฒƒ์€ ํ•จ์ˆ˜, ๊ด„ํ˜ธ๊ฐ€ ์—†๋Š” ๊ฒƒ์€ ๋ณ€์ˆ˜๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.head() # ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ ์•ž์—์„œ 5ํ–‰tail() # ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ ๋’ค์—์„œ 5ํ–‰info() # ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ •๋ณดsort_values()describe()dtypes # ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ํƒ€์ž…shape # ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ํฌ๊ธฐ์—‘์…€ ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ํ•ญ์ƒ csv๋งŒ ๋ถˆ๋Ÿฌ์™”๋Š”๋ฐ excel์„ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.loan_df = pd.read_excel('data/loan.. 2025. 3. 13.
[ํŒŒ์ด์ฌ] seaborn seaborn์œผ๋กœ ๊ทธ๋ž˜ํ”„ ๊ทธ๋ฆฌ๊ธฐseaborn : ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ทผ์‚ฌํ•œ ๊ทธ๋ž˜ํ”„ ์ƒ์„ฑmatplotlib : ์›ํ•˜๋Š”๋Œ€๋กœ ์ปค์Šคํ…€ํ•˜๊ฒŒ ๊ทธ๋ž˜ํ”„ ์ƒ์„ฑ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์ผ๋ณ„ ๋ฐ์ดํ„ฐ๋กœ ์ž๋™์œผ๋กœ ํ‰๊ท ๊ฐ’์„ ๊ตฌํ•ด month๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค์คŒ๋””์ž์ธ  set_theme()ํ•จ์ˆ˜๋กœ ๊ทธ๋ž˜ํ”„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ธฐ  ์‹ค์Šตimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltbike_df = pd.read_csv('data/bike.csv')sns.set_theme(rc={'figure.figsize': (10, 5)}, style='white')# ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.sns.barplot(data=bike_df, x='quarter', y='registered', errorb.. 2025. 3. 13.