Анастасия Трофимова
Помогите с задачей, выходит ошибка на python.
Задание 20
Вы видели, как работает группировка по городу и по дням недели. Теперь напишите функцию, которая объединит два эти расчёта.
Создайте функцию number_tracks(), которая посчитает прослушивания для заданного дня и города. Ей понадобятся два параметра:
день недели,
название города.
В функции сохраните в переменную строки исходной таблицы, у которых значение:
в колонке day равно параметру day,
в колонке city равно параметру city.
Для этого примените последовательную фильтрацию с логической индексацией (или сложные логические выражения в одну строку, если вы уже знакомы с ними).
Затем посчитайте значения в столбце user_id получившейся таблицы. Результат сохраните в новую переменную. Верните эту переменную из функции.
мой код
def number_tracks(day, city):
track_list = (df['day'] == day) & (df['city'] == city)
track_list_count = track_list['user_id'].count()
return track_list_count
Задание 21
Вызовите number_tracks() шесть раз, меняя значение параметров — так, чтобы получить данные для каждого города в каждый из трёх дней.
number_tracks('Monday', 'Moscow')
выходит такая ошибка
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/tmp/ipykernel_32/2095998492.py in <module>
----> 1 number_tracks('Monday', 'Moscow') #количество прослушиваний в Москве по понедельникам
/tmp/ipykernel_32/3056999216.py in number_tracks(day, city)
2 def number_tracks(day, city):
3 track_list = (df['day'] == day) & (df['city'] == city)
----> 4 track_list_count = track_list.groupby('user_id')['user_id'].count()
5 return track_list_count
6
/opt/conda/lib/python3.9/site-packages/pandas/core/series.py in groupby(self, by, axis, level, as_index, sort, group_keys, squeeze, observed, dropna)
1718 axis = self._get_axis_number(axis)
1719
-> 1720 return SeriesGroupBy(
1721 obj=self,
1722 keys=by,
/opt/conda/lib/python3.9/site-packages/pandas/core/groupby/groupby.py in __init__(self, obj, keys, axis, level, grouper, exclusions, selection, as_index, sort, group_keys, squeeze, observed, mutated, dropna)
558 from pandas.core.groupby.grouper import get_grouper
559
--> 560 grouper, exclusions, obj = get_grouper(
561 obj,
562 keys,
/opt/conda/lib/python3.9/site-packages/pandas/core/groupby/grouper.py in get_grouper(obj, key, axis, level, sort, observed, mutated, validate, dropna)
809 in_axis, name, level, gpr = False, None, gpr, None
810 else:
--> 811 raise KeyError(gpr)
812 elif isinstance(gpr, Grouper) and gpr.key is not None:
813 # Add key to exclusions
KeyError: 'user_id'
Ответы:
Просветленный
track_list = (df['day'] == day) & (df['city'] == city)
Вот тут вы что хотите получить? Результат булева переменная
Затем вы у нее пытаетесь получить несуществующее свойство user_id