Создайте новый столбец, представляющий собой сумму одного столбца по дате и одного другого столбца

#python #pandas #sum #pandas-groupby

#python #pandas #сумма #pandas-groupby

Вопрос:

Я пытаюсь суммировать цифры в столбце «Сумма» по дате и где класс тот же.

Например, желаемый df приведен ниже, где я пытаюсь вычислить столбец «Общая сумма»:


  • На сегодняшний день Имя класс Сумма Общая сумма
  • 1/31/2020 Smith A 1 5
  • 1/31/2020 Бирн А 1 5
  • 1/31/2020 McDaid A 1 5
  • 1/31/2020 Buba A 1 5
  • 1/31/2020 Голландия A 1 5
  • 1/31/2020 Прописная буква B 1 2
  • 1/31/2020 Падмир Б 1 2

Я пробовал приведенный ниже, но он выдает результат NA

 df['Total Amount'] = df.groupby('To Date' and 'Class')['Amount'].sum()
  

Ответ №1:

Вы должны предоставить сгруппированные столбцы в виде списка:

 df_totals = df.groupby(['To Date', 'Class'])['Amount'].sum()
  

Обратите внимание, что это вернет фрейм данных другого измерения. Если вы хотите добавить новую строку со значением к исходной, вы можете использовать:

 df["Total Amount"] = df.groupby(['To Date', 'Class'])['Amount'].transform(sum)