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

如何使用pandas统计Device No频次时加入Full name of organization列?

解决方案

要实现统计设备编号数量并关联对应组织全称的需求,可通过pandas的分组聚合功能完成,以下是针对不同数据场景的实现代码:

场景1:每个设备编号对应唯一组织

如果数据中每个Device No仅关联一个Full name of organization,使用以下代码:

import pandas as pd

df = pd.read_excel("E:\\input.xlsx")

# 按设备编号分组,提取组织全称并统计数量
result_df = df.groupby(['Device No'])['Full name of organization'].agg(['first', 'size']).reset_index()
# 重命名列名匹配输出需求
result_df.columns = ['Device No', 'Full name of organization', 'Count']

# 导出结果到Excel,不包含默认索引
result_df.to_excel("E:\\output.xlsx", index=False)

场景2:同一设备编号对应多个组织

如果存在一个设备编号关联多个不同组织的情况,可合并该编号下的所有唯一组织名称:

import pandas as pd

df = pd.read_excel("E:\\input.xlsx")

# 分组后合并唯一组织名称,并统计数量
result_df = df.groupby(['Device No'])['Full name of organization'].agg(
    org_names=lambda x: ', '.join(x.unique()),
    count='size'
).reset_index()
# 重命名列名
result_df.columns = ['Device No', 'Full name of organization', 'Count']

result_df.to_excel("E:\\output.xlsx", index=False)

代码说明

  • groupby(['Device No']):按设备编号对数据分组,确保同一编号的记录归为一组。
  • agg():对分组后的组织列执行聚合操作:
    • 唯一组织场景用first()取分组内第一个组织名称;
    • 多组织场景用lambda x: ', '.join(x.unique())合并分组内所有不重复的组织名称;
    • size统计分组内的记录数,即设备编号出现的次数。
  • reset_index():将分组索引转为普通列,方便后续导出。
  • to_excel(index=False):导出时不包含pandas默认的索引列,让输出表格更整洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:33:26