pandas - 基于不同列的值进行聚合
问题描述
我想将source_bytes
ifdestination_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]})
但我不确定如何检查函数内部的条件。
解决方案
df.groupby("desination_port")["source_bytes"].sum()
会给你每个destination_port的总和。然后根据需要将其添加回文件中。