You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Pandas DataFrame中统计不同IP的实例总数

解决方法:按IP分组求和并输出指定格式

刚接触Pandas不用慌,这个需求其实很容易实现,核心就是用分组求和的方法,我一步步给你讲:

步骤1:按IP分组并计算实例总数

首先我们用groupby()方法把数据按IP列分组,然后对每个分组里的Instances列求和,代码如下:

import pandas as pd

# 假设你的df已经创建好了,直接执行下面的代码
sum_result = df.groupby('IP')['Instances'].sum().reset_index()
  • groupby('IP'):把DataFrame里的数据按照不同的IP值分成若干组
  • ['Instances'].sum():对每个分组中的Instances列计算总和
  • reset_index():把分组后作为索引的IP变回普通列,这样得到的是一个包含IP和Instances(总和)的新DataFrame

步骤2:按你想要的格式输出结果

现在我们可以遍历这个新的DataFrame,按照IP 总数的格式打印:

for _, row in sum_result.iterrows():
    print(f"{row['IP']} {row['Instances']}")

运行后你会得到这样的输出:

172.16.1.98 4
172.16.2.239 117
172.16.3.39 4

如果你想把结果存成字典方便后续使用,也可以这样:

ip_total_dict = df.groupby('IP')['Instances'].sum().to_dict()
# 打印字典内容
for ip, total in ip_total_dict.items():
    print(f"{ip} {total}")

补充说明

如果你的数据里Name列有不同的值,想要按Name+IP组合分组求和,只需要把groupby的参数改成['Name', 'IP']就行,比如:

sum_result = df.groupby(['Name', 'IP'])['Instances'].sum().reset_index()

不过你的数据里Name都是amy,所以单独按IP分组就完全满足需求啦~

内容的提问来源于stack exchange,提问作者Lasit Pant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:35:09