- # Объявление функции genre_weekday() с параметрами table, day, time1, time2,
- # которая возвращает информацию о самых популярных жанрах в указанный день в
- # заданное время:
- # 1) в переменную genre_df сохраняются те строки переданного датафрейма table, для
- # которых одновременно:
- # - значение в столбце day равно значению аргумента day
- # - значение в столбце time больше значения аргумента time1
- # - значение в столбце time меньше значения аргумента time2
- # Используйте последовательную фильтрацию с помощью логической индексации.
- # 2) сгруппировать датафрейм genre_df по столбцу genre, взять один из его
- # столбцов и посчитать методом count() количество записей для каждого из
- # присутствующих жанров, получившийся Series записать в переменную
- # genre_df_count
- # 3) отсортировать genre_df_count по убыванию встречаемости и сохранить
- # в переменную genre_df_sorted
- # 4) вернуть Series из 10 первых значений genre_df_sorted, это будут топ-10
- # популярных жанров (в указанный день, в заданное время)
- def genre_weekday(df, day, time1, time2):
- # последовательная фильтрация
- # оставляем в genre_df только те строки df, у которых день равен day
- genre_df = df[df['day'] == day] # ваш код здесь
- # оставляем в genre_df только те строки genre_df, у которых время меньше time2
- genre_df = genre_df[genre_df['time']] < time2 # ваш код здесь
- # оставляем в genre_df только те строки genre_df, у которых время больше time1
- genre_df = genre_df[genre_df['time']] > time1 # ваш код здесь
- # сгруппируем отфильтрованный датафрейм по столбцу с названиями жанров, возьмём столбец genre и посчитаем кол-во строк для каждого жанра методом count()
- genre_df_grouped = genre_df.groupby('genre')['genre'].count() # ваш код здесь
- # отсортируем результат по убыванию (чтобы в начале Series оказались самые популярные жанры)
- genre_df_sorted = genre_df_grouped.sort_values(ascending=False) # ваш код здесь
- # вернём Series с 10 самыми популярными жанрами в указанный отрезок времени заданного дня
- return genre_df_sorted[:10]