У вас есть s = df.groupby("user_id").size(). Что нужно сделать, чтобы получить таблицу DataFrame с колонками user_id и cnt для дальнейшего объединения через .merge()?
A
s.reset_index(name="cnt") для превращения индекса в колонку с именем счётчикаB
s.to_frame("cnt") для получения таблицы с одной колонкой счётчика без ключаC
s.rename("cnt").to_dict() для словаря с ключами по user_id и значениями-числамиD
s.values.reshape(-1, 1) для двумерного массива значений без ключевого столбцаПравильный ответ. Метод
.size() возвращает Series, а reset_index(...) превращает агрегат в табличный DataFrame с колонкой-ключом.Разбор
После groupby(...).size() вы получаете объект Series, где индекс — это ключ группировки user_id, а значения — количество строк в группе. Для соединений через .merge() чаще удобнее иметь явный столбец с ключом, поэтому применяют reset_index(name="cnt"): индекс превратится в колонку user_id, а вторая колонка получит имя cnt. Альтернативы вроде to_dict или преобразования в массив теряют табличную структуру, нужную для .merge().
Проверь себя · 1/3разбор после ответа
Что вернёт выражение
df[df["price"] > 100]?Ещё вопросы по теме «Pandas и DataFrame»
- Что вернёт выражение `df[df["price"] > 100]`?
- В `DataFrame` `df` есть столбцы `country`, `user_id`, `revenue`. Что вернёт выражение `df.loc[df["country"] == "RU", ["user_id", "revenue"]]`?
- В `df` есть столбец `age`. Какие значения `age` попадут в результат `df[(df["age"] >= 18) & (df["age"] <= 25)]`?
- Что выберет фильтр `df[~df["status"].isin(["cancelled", "returned"])]`?
- Что верно про два шага: `mask = df["col"] > 0` и затем `df[mask]`?
- Все вопросы по «Pandas и DataFrame» →