#python #pandas #pandas-groupby
#python #pandas #pandas-groupby
Вопрос:
У меня есть фрейм данных, содержащий идентификатор, и я хочу «сгруппировать по» на основе идентификатора. Мне также нужно сохранить все остальные столбцы (статические данные, строки) фрейма данных, поэтому изначально я включил все статические столбцы данных в group by. Однако в статических данных могут быть различия между 2 или более строками с одинаковым идентификатором (из-за другого источника). В этом случае я все равно хотел бы сгруппироваться по идентификатору и не создавать «дубликаты». Для столбца, имеющего разницу, я довольно равнодушен, сгруппированная строка может просто взять первую, с которой она сталкивается, из конфликтующих строк.
Надеюсь, эта иллюстрация прояснит:
Есть предложения?
Комментарии:
1. итак, вам нужен уникальный data.frame и 1 запись на группу?
Ответ №1:
Вы можете использовать groupby().agg()
и указать, что вы хотите сделать для каждого столбца в вашем фрейме данных в словаре. Основываясь на примере вашего предполагаемого результата, который будет:
df.groupby('identifier').agg({'name': 'first', 'amount':'sum'})
Он принимает первое значение name
столбцов и sums
значения в amount
столбце.