Вам необходим метод transform()
для приведения результата в исходное измерение фрейма данных.
issuers['max'] = issuers.groupby(['company', 'publication_date'])['publication_datetime'].transform('max')
Результат вашего groupby()
до того, как вы вернули многоиндексированный групповой объект, который почему он жалуется на 3 значения (первая группа, вторая группа, а затем значения). Но даже если вы только что вернули значения, они объединяются как группы, так что у вас будет меньше значений, чем нужно.
Метод transform()
возвращает результаты группы для каждой строки информационного кадра таким образом, чтобы упростить создание нового столбца. Возвращаемые значения - это индексированные Series
с индексами, являющимися исходными с фрейма данных issuers
.
Надеюсь, это поможет! Документация по трансформации здесь