๐Ÿ“Š Data Analysis/๐ŸŽฏ Project

์‹ค์ „ ํ”„๋กœ์ ํŠธ : ํƒœ๋ธ”๋กœ ์˜ํ™” ์ถ”์ฒœ ๋Œ€์‹œ๋ณด๋“œ ๋งŒ๋“ค๊ธฐ (2)

ny:D 2024. 7. 15. 16:16

์‹ค์ „ ํ”„๋กœ์ ํŠธ : What's Next?

์ปฌ๋Ÿผ ์ •๋ณด

๋ถ„์„์— ์‚ฌ์šฉ๋  ์ปฌ๋Ÿผ

  • vote_average, vote_count, release_date, revenue, runtime, adult, budget, original_language, poster_path, genres, production_companies, production_countries, spoken_languages, keywords
  • id(๊ธฐ๋ณธํ‚ค) - ์˜ํ™” ์ œ๋ชฉ์ด ๊ฐ™์ง€๋งŒ, ๊ณ ์œ ํ•œ id๊ฐ€ ๋ถ€์—ฌ๋˜์–ด ์˜ํ™”๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ.
  • status - ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ '๊ฐœ๋ด‰(released)' ์ƒํƒœ์˜ ์˜ํ™”๋ฅผ ๊ณจ๋ผ๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ํ›„ ์‚ญ์ œ

๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ€๊ณตํ•ด ํ™œ์šฉํ• ์ง€?

โœ… ์ฝ”๋กœ๋‚˜ ์ „ํ›„ ๋น„๊ต → ์‹œ๊ฐ„์„  ์„ค์ •

  • 2023 9์›” ์ดํ›„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด์ „๊ณผ ๋น„๊ตํ•ด ๋งŽ์ด ์ ์Œ์„ ํ™•์ธ → ์ตœ์ดˆ ๊ฒŒ์‹œ์ผ ์ดํ›„ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐ. (์ด ๋ถ€๋ถ„์„ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€ ํ™•์ธ.)
  • ์ฝ”๋กœ๋‚˜ ์ „ํ›„๋กœ ๊ทธ๋ฃน์„ ๋‚˜๋ˆ  ๊ฐ๊ฐ ์–ด๋–ค ์žฅ๋ฅด๊ฐ€ ์ธ๊ธฐ๊ฐ€ ๋งŽ์•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

โœ… ์ฃผ ์‚ฌ์šฉ ์–ธ์–ด๋ณ„ ์„ ํ˜ธ๋„ (revenue, vote_count, vote_average)

โœ… ์ œ์ž‘์‚ฌ ํ™œ์šฉ ์•„์ด๋””์–ด

  • ์–ด๋–ค ์ œ์ž‘์‚ฌ๊ฐ€ ์ธ๊ธฐ๊ฐ€ ๋งŽ๊ณ , ๊ทธ ์ œ์ž‘์‚ฌ์—์„œ ์–ด๋–ค ์˜ํ™”๊ฐ€ ์ œ์ผ ์ธ๊ธฐ์žˆ์—ˆ๋Š”์ง€?
  • ๋…„๋„๋ณ„๋กœ ์–ด๋–ค ์ œ์ž‘์‚ฌ๊ฐ€ ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ์—ˆ๋Š”์ง€?
  • ์–ด๋–ค ์ œ์ž‘์‚ฌ๊ฐ€ ๊ฐ€์žฅ ์˜ˆ์‚ฐ์„ ๋งŽ์ด ๋“ค์˜€๋Š”์ง€ ๊ทธ ์˜ํ™”๊ฐ€ ๋ญ”์ง€?

โœ… ROI ๋ถ„์„

์–ด๋–ค ์žฅ๋ฅด๊ฐ€ ์ˆ˜์ต์„ฑ์ด ์ข‹์€์ง€? (์˜ˆ์‚ฐ๋Œ€๋น„) → ๊ฐ€์„ฑ๋น„๊ฐ€ ์ข‹์€ ์žฅ๋ฅด!

โœ… Top N + ์—ฐ๋„๋ณ„

  •  ์—ญ๋Œ€ ์˜ˆ์‚ฐ topN
  • ์—ฐ๋„๋ณ„ ํ‰์  top N ์˜ํ™”

โœ… ์—ฌ๋ฆ„์— ํ˜ธ๋Ÿฌ์˜ํ™”๋Š” ์ •๋ง ์ž˜ ๋‚˜๊ฐ€๋Š”๊ฐ€?

โœ… ํˆฌํ‘œ์ˆ˜๋Š” ๋งŽ์€๋ฐ ๋งค์ถœ์€ ์ ์€ ์ง„ํ™์† ์ง„์ฃผ๋ฅผ ์ฐพ์ž

์ „์ฒ˜๋ฆฌ

๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง

1. ์›๋ณธ ๋ฐ์ดํ„ฐ (1,059,590)

2. ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ปฌ๋Ÿผ ๋ฐ ์ค‘๋ณตํ–‰ ์‚ญ์ œ (1,059,202)

3. 2000๋…„ 1์›” 1์ผ ~ 2023๋…„ 9์›” 30์ผ ๊ฐœ๋ด‰์ž‘๋งŒ ์„ ํƒ(587,498)

  • ์ˆ˜์ง‘๋œ ๋ฐ์ดํ„ฐ์˜ ์ตœ์†Œ๊ฐ’์€ (1800-01-01)์ด์—ˆ๊ณ , ์ตœ๋Œ“๊ฐ’์€ (2099-11-18)์ด์—ˆ์Œ.
  • kaggle์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋งค์ผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋˜๋Š” ๊ตฌ์กฐ์˜€๋Š”๋ฐ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์ด ๊ฒ€์ฆ๋œ ์ตœ์ดˆ ์—…๋กœ๋“œ ์‹œ์ ์ธ 2023-09-30์œผ๋กœ ๊ธฐ๊ฐ„์„ ์„ค์ •ํ•จ
  • ๋˜ํ•œ ๊ฐœ๋ด‰๋˜์ง€ ์•Š์€ ์ž‘ํ’ˆ์˜ ํ‰์ ์€ ์ผ๋ฐ˜ ๋Œ€์ค‘์˜ ํ‰์ ์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ ์ด์ƒ์น˜๋ผ๊ณ  ํŒ๋‹จ, '๊ฐœ๋ด‰์ž‘(released)'๋งŒ ์„ ํƒ

4. ์ฃผ์š” ์ง€ํ‘œ ์ปฌ๋Ÿผ๋“ค์˜ ๊ฒฐ์ธก์น˜ ์‚ญ์ œ(186,099) - title, release_date, genres, production_countries, production_companies

5. ์ด์ƒ์น˜ ์‚ญ์ œ(160,706)

  • vote_count๊ฐ€ 0์ธ๋ฐ, vote_average๊ฐ€ 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์‚ญ์ œ 
  • ๋Ÿฌ๋‹ํƒ€์ž„์ด 0๋ถ„์—์„œ 240๋ถ„(4์‹œ๊ฐ„) ์‚ฌ์ด์ธ ๋ฐ์ดํ„ฐ๋งŒ ํ•„ํ„ฐ๋ง

6. Poster_Path ์ปฌ๋Ÿผ์˜ ๊ฒฐ์ธก์น˜ ์ œ๊ฑฐ (145,052) - poster_path ์ปฌ๋Ÿผ์„ ์ด์šฉ, ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด ๊ฒฐ์ธก์น˜๋ฅผ ์ œ๊ฑฐํ•จ

๋ฐ์ดํ„ฐ ๊ฐ€๊ณต

  • ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด poster_path ์ปฌ๋Ÿผ์— base URL ์ถ”๊ฐ€

๋”๋ณด๊ธฐ
#URL ์—ฐ๊ฒฐ์„ ์œ„ํ•œ prefix ์ถ”๊ฐ€
prefix = 'https://image.tmdb.org/t/p/w1280'
df5['poster_path'] = prefix + df5['poster_path'].astype(str)
  • ์žฅ๋ฅด ๋ฐ ์ œ์ž‘์‚ฌ ๋ถ„์„์„ ์œ„ํ•ด ๋Œ€ํ‘œ ์žฅ๋ฅด, ์ œ์ž‘์‚ฌ ์ถ”์ถœํ•ด ์ปฌ๋Ÿผ ์ƒ์„ฑ

๋”๋ณด๊ธฐ
def select_main(df, column, new_column):
    df[new_column] = df[column].apply(lambda x: x.split(',')[0].strip())
    return df.shape[0]

# select main genre
select_main(df5, 'genres', 'main_genre')

# select main production
select_main(df5, 'production_companies', 'main_production')