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

如何将表格Item列条目转为新列并统计各人员对应物品持有数量

长表转宽表操作方案

你要实现的是典型的长表转宽表(透视表/交叉表转换)操作,不同工具的实现方法如下:

数据示例

原始表结构

PersonItemquantity
AlanCar1
AlanBoat2
BradCar3
BradBoat2
CharlesBoat3

预期转换后结构

PersonCarBoat
Alan12
Brad32
Charles03

各工具实现方法

1. Excel/WPS表格

直接使用数据透视表功能即可:

  • 选中整张原始数据表,点击「插入」选项卡→「数据透视表」
  • 行区域拖拽添加Person字段
  • 列区域拖拽添加Item字段
  • 值区域拖拽添加quantity字段,值汇总方式选择「求和」,空值可手动设置填充为0

2. Python(pandas库)

使用pandas的pivot_table方法实现,代码如下:

import pandas as pd

# 构造原始数据
df = pd.DataFrame({
    'Person': ['Alan', 'Alan', 'Brad', 'Brad', 'Charles'],
    'Item': ['Car', 'Boat', 'Car', 'Boat', 'Boat'],
    'quantity': [1,2,3,2,3]
})

# 转换为宽表,空值填充0
df_wide = df.pivot_table(
    index='Person', 
    columns='Item', 
    values='quantity', 
    fill_value=0
).reset_index()

# 输出结果
print(df_wide)

3. SQL

使用条件聚合实现,通用SQL写法如下:

SELECT 
  Person,
  SUM(CASE WHEN Item = 'Car' THEN quantity ELSE 0 END) AS Car,
  SUM(CASE WHEN Item = 'Boat' THEN quantity ELSE 0 END) AS Boat
FROM 你的表名
GROUP BY Person
ORDER BY Person;

如果是支持PIVOT语法的数据库(如SQL Server、Oracle、PostgreSQL 15+),也可以直接用PIVOT语法实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:18:01