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

如何按年对column1和column2无序分组并计算每组Count总和

实现方案

Python 方法(基于pandas)

核心思路是为每一行生成不考虑column1、column2顺序的唯一配对标识,再按年度+配对标识分组求和。

  • 第一步:读取csv文件
import pandas as pd
# 替换为你的文件实际路径
df = pd.read_csv("data.csv")
  • 第二步:生成无顺序配对键
# 对每行的column1、column2排序后转为元组,作为唯一配对标识
df["pair"] = df.apply(lambda row: tuple(sorted([row["column1"], row["column2"]])), axis=1)
  • 第三步:分组求和统计
# 按年度、配对键分组,对Count求和
res = df.groupby(["Year", "pair"])["Count"].sum().reset_index()
# 可选:把配对键拆回两列展示
res[["column1", "column2"]] = pd.DataFrame(res["pair"].tolist(), index=res.index)
res = res.drop(columns=["pair"])

按示例数据,1990年的(A,B)和(B,A)会生成相同的('A','B')配对键,求和后Count结果为15,符合要求。

Excel 方法

核心思路是新增辅助列生成无顺序配对标识,再通过数据透视表完成统计。

  • 第一步:新增配对辅助列
    假设你的数据A列为column1、B列为column2、C列为Count、D列为Year,表头在第1行,数据从第2行开始。新增E列,列名设为pair,E2单元格输入公式:
    =IF(A2<B2, A2&"|"&B2, B2&"|"&A2)
    将公式下拉填充至所有数据行,公式会自动把两个列值按字典序排序后拼接,不管排列顺序相同配对的生成值完全一致。
  • 第二步:插入数据透视表统计
    选中所有数据区域,点击「插入」选项卡→「数据透视表」,按如下配置:
    • 行区域:依次放入Year、pair字段
    • 值区域:放入Count字段,汇总方式选择「求和」
  • 可选拆分配对列:如果需要把pair列拆回两个单独列,选中pair列,点击「数据」选项卡→「分列」,分隔符选择「其他」输入|,完成拆分即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:09:03