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

如何将DataFrame按多列分组,将指定列的值转换为新列

你需要的是行按Name、Fruits分组,列按Date展开的交叉聚合表,两种实现方式如下:

方法1:使用pivot_table(更直观)

直接通过透视表指定行、列、聚合值即可:

import pandas as pd

output = pd.pivot_table(
    dt,
    index = ['Name', 'Fruits'],
    columns = 'Date',
    values = 'QTY',
    aggfunc = 'sum',
    fill_value = 0 # 无匹配数据的单元格默认填充0,可删除该参数保留NaN
).reset_index() # 若需要将Name、Fruits从索引转为普通列则保留该行

方法2:调整现有groupby逻辑

你之前的写法只按Name、Fruits分组,没有包含Date维度,补充后加unstack即可实现列转行:

output = dt.groupby(['Name', 'Fruits', 'Date'])['QTY'].sum().unstack(fill_value=0).reset_index()

如果需要导出到Excel文件,追加下述代码即可:

output.to_excel('输出结果.xlsx', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:12:03