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

Pandas groupby agg统计EC2实例数返回ID列表而非计数问题求助

问题原因

你的输出为实例ID拼接字符串,大概率是实际执行时对InstanceId字符串列误用了sum聚合而非count;同时你原代码仅按State单维度分组,不符合按实例类型、可用区、运行状态统计的需求。

解决方案

第一步:确认原始数据格式

先执行以下代码确认基础数据结构正常,每行对应单个EC2实例:

print(ec2_list[['InstanceId', 'State', 'InstanceType', 'AvailabilityZone']].head(5))
print(ec2_list.dtypes)

确认InstanceId列为单个字符串格式,不是列表或预拼接的字符串。

第二步:正确分组统计

使用多维度分组+计数聚合,推荐用size()直接统计分组内行数,规避列数据类型问题:

# 按可用区、实例类型、实例状态三个维度分组统计数量
summary = ec2_list.groupby(
    ['AvailabilityZone', 'InstanceType', 'State'],
    as_index=False
).size()
# 重命名计数列方便识别
summary.rename(columns={'size': 'InstanceCount'}, inplace=True)

如果你坚持用count实现,代码如下:

summary = ec2_list.groupby(
    ['AvailabilityZone', 'InstanceType', 'State'],
    as_index=False
)['InstanceId'].count()
summary.rename(columns={'InstanceId': 'InstanceCount'}, inplace=True)

第三步:导出Excel

分组时已经指定as_index=False,分组字段会变成普通列,导出时不需要保留索引:

summary.to_excel(
    writer,
    sheet_name='ec2summary',
    startrow=0,
    startcol=0,
    index=False
)

导出后的表格会包含可用区、实例类型、实例状态、实例数量四列,完全符合你的统计需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:39:01