Агрегирование на основе значения другого столбца

#pandas

#pandas

Вопрос:

Я хотел бы объединить сумму source_bytes if destination_port 80 в отдельный столбец с именем source_bytes_port_80

Мой фрейм данных

 date                | source_ip     | destination_ip| source_bytes  | destination_port
2020-11-13 13:57:51 | 192.168.1.1   | 10.0.0.1      | 5             | 80
2020-11-13 13:57:51 | 192.168.1.2   | 10.0.0.1      | 1             | 2200  
2020-11-13 13:57:52 | 10.0.0.1      | 192.168.1.1   | 2             | 80
2020-11-13 13:59:53 | 192.168.1.1   | 192.168.1.2   | 3             | 443
2020-11-13 13:59:54 | 192.168.1.1   | 192.168.1.2   | 3             | 1100
  

Я думал о создании отдельной функции, а затем вызвать ее с .agg({'source_bytes':[sum_of_port]}) помощью, но я не уверен, как я могу проверить условие внутри функции.

Комментарии:

1. Не могли бы вы опубликовать, как должен выглядеть ожидаемый результат?

Ответ №1:

 df.groupby("desination_port")["source_bytes"].sum()
  

Даст вам сумму для каждого destination_port. Затем добавьте его обратно в файл, как вам хотелось бы.