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

如何将行数据转置为列数据并按指定规则求和?求实现代码

没问题,我来帮你搞定这个需求!下面提供两种实现方式,一种是用pandas(处理表格数据超方便的工具),另一种是纯Python代码,不用额外安装库,你可以按需选择:

方法一:使用pandas实现(推荐,代码简洁易读)

import pandas as pd

# 原始行数据
raw_data = [
    ["Steve", 10],
    ["Arnold", 15],
    ["Arnold", 20],
    ["Joseph", 30],
    ["Steve", 25]
]

# 转置为列格式的标准表格
df = pd.DataFrame(raw_data, columns=["Name", "Price"])

# 按Name分组求和
sum_by_name = df.groupby("Name")["Price"].sum()

# 计算目标结果
sum_arnold = sum_by_name["Arnold"]
sum_steve_joseph = sum_by_name["Steve"] + sum_by_name["Joseph"]

# 输出结构化结果表格
result_df = pd.DataFrame({
    "Sum(Arnold)": [sum_arnold],
    "sum(steve + joseph)": [sum_steve_joseph]
})
print(result_df)

运行这段代码后,你会得到如下输出:

Sum(Arnold)  sum(steve + joseph)
0           35                   65

方法二:纯Python实现(无需额外安装库)

如果不想安装pandas,用基础Python也能轻松实现:

# 原始行数据
raw_data = [
    ["Steve", 10],
    ["Arnold", 15],
    ["Arnold", 20],
    ["Joseph", 30],
    ["Steve", 25]
]

# 初始化字典存储每个Name的总价格
sum_dict = {}
for name, price in raw_data:
    sum_dict[name] = sum_dict.get(name, 0) + price

# 计算目标结果
sum_arnold = sum_dict["Arnold"]
sum_steve_joseph = sum_dict["Steve"] + sum_dict["Joseph"]

# 格式化输出结果
print(f"Sum(Arnold)  sum(steve + joseph)")
print(f"{sum_arnold:<14}{sum_steve_joseph}")

运行后输出:

Sum(Arnold)  sum(steve + joseph)
35           65

两种方法都能完美满足你的需求,要是有啥细节想调整随时说哈!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:18:32