import pandas as pd
# Загружаем файл
df = pd.read_csv('/content/IMDB-Movie-Data.csv')
# ========================================
# ЗАДАНИЕ 1
# ========================================
sci_fi = df[df['Genre'].str.contains('Sci-Fi')]
print("ЗАДАНИЕ 1")
print("Количество научно-фантастических фильмов:", len(sci_fi))
# ========================================
# ЗАДАНИЕ 2
# ========================================
longest = df.loc[df['Runtime (Minutes)'].idxmax()]
shortest = df.loc[df['Runtime (Minutes)'].idxmin()]
print("\nЗАДАНИЕ 2")
print("Самый продолжительный фильм:")
print(longest[['Title', 'Director']])
print("\nСамый короткий фильм:")
print(shortest[['Title', 'Director']])
# ========================================
# ЗАДАНИЕ 3
# ========================================
comedies_2016 = df[
(df['Genre'].str.contains('Comedy')) &
(df['Year'] == 2016)
]
print("\nЗАДАНИЕ 3")
print("Комедии 2016 года:")
print(comedies_2016['Title'])
# ========================================
# ЗАДАНИЕ 4
# ========================================
df['Profit'] = df['Revenue (Millions)'] - df['Budget (Millions)']
top10 = df.sort_values(
'Profit',
ascending=False
).head(10)
print("\nЗАДАНИЕ 4")
print("Топ-10 наиболее прибыльных фильмов:")
print(top10[['Title', 'Director', 'Profit']])
# ========================================
# ЗАДАНИЕ 5
# ========================================
sci_fi = df[df['Genre'].str.contains('Sci-Fi')]
sci_fi_above_50 = sci_fi[sci_fi['Metascore'] > 50]
share = len(sci_fi_above_50) / len(sci_fi)
print("\nЗАДАНИЕ 5")
print("Доля Sci-Fi фильмов с Metascore выше 50:", share)
# ========================================
# ЗАДАНИЕ 6
# ========================================
dicaprio = df[
df['Actors'].str.contains('Leonardo DiCaprio')
]
print("\nЗАДАНИЕ 6")
print("Фильмы с Leonardo DiCaprio:")
print(dicaprio['Title'])
# ========================================
# ЗАДАНИЕ 7
# ========================================
comedies = df[df['Genre'].str.contains('Comedy')]
# Способ 1 — groupby
comedy_by_year_groupby = (
comedies
.groupby('Year')['Title']
.count()
.sort_values(ascending=False)
)
print("\nЗАДАНИЕ 7")
print("Способ 1 — groupby:")
print(comedy_by_year_groupby)
# Способ 2 — pivot_table
comedy_by_year_pivot = pd.pivot_table(
data=comedies,
index='Year',
values='Title',
aggfunc='count'
).sort_values(
'Title',
ascending=False
)
print("\nСпособ 2 — pivot_table:")
print(comedy_by_year_pivot)
# ========================================
# ЗАДАНИЕ 8
# ========================================
comedy_groups = comedies.groupby('Year')
comedies_2016_group = comedy_groups.get_group(2016)
print("\nЗАДАНИЕ 8")
print("Комедии 2016 года:")
print(comedies_2016_group['Title'])