温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

pandas如何做数据透视表

发布时间:2026-11-04 09:11:09 来源:亿速云 阅读:85 作者:小樊 栏目:编程语言

在 pandas 中,做数据透视表主要使用 pivot_table() 函数。下面从基础到常用场景给你讲清楚。


一、基本语法

import pandas as pd

pd.pivot_table(
    data,
    values=None,     # 要聚合的数值列
    index=None,      # 行分组字段
    columns=None,    # 列分组字段
    aggfunc='mean',  # 聚合方式(mean/sum/count等)
    fill_value=None, # 缺失值填充
    margins=False    # 是否显示总计
)

二、示例数据

df = pd.DataFrame({
    '地区': ['华北', '华北', '华东', '华东', '华南', '华南'],
    '产品': ['A', 'B', 'A', 'B', 'A', 'B'],
    '销量': [100, 150, 200, 250, 300, 350],
    '利润': [10, 15, 20, 25, 30, 35]
})

三、最基础的透视表(按地区汇总销量)

pd.pivot_table(df, values='销量', index='地区', aggfunc='sum')

结果:

      销量
地区
华北   250
华东   450
华南   650

四、行 + 列 双维度透视

pd.pivot_table(
    df,
    values='销量',
    index='地区',
    columns='产品',
    aggfunc='sum'
)

结果:

产品      A    B
地区
华北    100  150
华东    200  250
华南    300  350

五、多个指标(values 为列表)

pd.pivot_table(
    df,
    values=['销量', '利润'],
    index='地区',
    aggfunc='sum'
)

六、多个聚合方式(aggfunc 为字典)

pd.pivot_table(
    df,
    values='销量',
    index='地区',
    aggfunc={
        '销量': ['sum', 'mean', 'count']
    }
)

七、添加总计(margins)

pd.pivot_table(
    df,
    values='销量',
    index='地区',
    columns='产品',
    aggfunc='sum',
    margins=True,
    margins_name='总计'
)

八、缺失值处理

pd.pivot_table(
    df,
    values='销量',
    index='地区',
    columns='产品',
    aggfunc='sum',
    fill_value=0
)

九、crosstab 与 pivot_table 的区别(补充)

如果只是计数(类似 Excel 透视表计数):

pd.crosstab(df['地区'], df['产品'])

而 pivot_table 更灵活,支持任意聚合函数。


如果你有 具体业务场景(如销售、财务、用户行为),可以把数据结构发我,我可以直接帮你写透视表代码。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手