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

如何将pandas透视/分组结果转为DataFrame而非Series?

如何将pandas分组/透视结果转为DataFrame而非Series

针对你遇到的问题,我整理了几个直接有效的解决办法,不管是处理groupby结果还是做透视表都适用:

一、解决你的groupby场景:从Series转DataFrame

你当前的代码data = df.groupby(['Mes','Clientes'])['Quantidade'].sum()返回Series,是因为你选中了单一列(单括号['Quantidade']),聚合后会得到带多级索引的Series。有两种快速修正方式:

方法1:用reset_index()将索引转为列

这是最常用的方式,直接把Series的多级索引(Mes和Clientes)转换成普通列,自动得到DataFrame:

data = df.groupby(['Mes','Clientes'])['Quantidade'].sum().reset_index()

方法2:选中列时用双括号,确保操作对象是DataFrame

把要聚合的列放在双括号里,这样groupby操作的是DataFrame的子集,聚合结果自然也是DataFrame:

data = df.groupby(['Mes','Clientes'])[['Quantidade']].sum()

二、透视表得到DataFrame的方法

如果需要做透视操作,推荐直接用pivot_table,它默认返回的就是DataFrame,还能灵活设置聚合函数、行/列索引:

import pandas as pd
# 按Mes和Clientes分组,汇总Quantidade,返回DataFrame
data_pivot = pd.pivot_table(df, values='Quantidade', index=['Mes', 'Clientes'], aggfunc='sum')

如果用pivot方法,只要确保参数设置正确(比如指定values、index等),也会返回DataFrame,不过pivot_table处理重复分组的情况更稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 07:52:41