求助:在Google Sheets中实现国家编码与HS编码分组统计及金额求和
问题描述
我有一份包含国家编码(country code)、**海关编码(hs-code)和金额(price)**三列的文件,每一行对应一条订单记录,包含产品原产国编码、海关编码及订单金额。我需要统计不同「国家编码+海关编码」组合的出现次数,并计算每组的总金额。目前我能找到实现分组的方法,但没法同时完成分组后的金额求和。
解决思路与实现方案
方法一:Excel 数据透视表(适合非编程场景)
直接用Excel的透视表就能一步完成,操作步骤:
- 选中所有数据区域(包含表头)
- 点击菜单栏「插入」→「数据透视表」,按提示选择放置位置
- 在右侧「字段列表」中:
- 将「国家编码」「海关编码」拖到「行」区域
- 将「金额」拖到「值」区域两次:
- 第一次点击值区域的「金额」,选择「值字段设置」→ 改成「计数」,重命名为「出现次数」
- 第二次同样操作,选择「求和」,重命名为「总金额」
- 调整格式后就能得到你要的统计结果
方法二:Python pandas(编程实现,灵活高效)
如果用Python处理,pandas库的分组聚合可以轻松实现:
import pandas as pd # 读取文件(假设是CSV格式,其他格式可换read_excel等) df = pd.read_csv("你的文件名.csv") # 按国家编码+海关编码分组,同时统计次数和总金额 result = df.groupby(["country code", "hs-code"]).agg( 出现次数=("price", "count"), 总金额=("price", "sum") ).reset_index() # 保存结果到新文件 result.to_csv("统计结果.csv", index=False)
- 代码说明:
groupby指定分组的两列,agg里分别对price列做计数(统计出现次数)和求和(计算总金额),reset_index把分组的列变回普通列,方便查看和保存。
方法三:Shell awk命令(Linux/macOS命令行快速处理)
如果习惯用命令行,awk可以直接处理文本文件:
awk -F ',' '{ # 假设文件是逗号分隔,分隔符可根据实际修改 key=$1","$2; # 用国家编码+海关编码作为唯一键 count[key]++; # 统计组合出现次数 total[key]+=$3; # 累加组合的总金额 } END { # 处理完所有行后输出结果 print "国家编码,海关编码,出现次数,总金额"; for(k in count) { print k","count[k]","total[k]; } }' 你的文件名.csv > 统计结果.csv
- 注意:如果你的文件不是逗号分隔,把
-F ','改成对应的分隔符(比如制表符用-F '\t')。
内容的提问来源于stack exchange,提问作者Deathmelon
相关产品推荐
相关产品推荐

