首页 > 后端开发 > Python教程 > 如何有效地透视 Pandas DataFrame?

如何有效地透视 Pandas DataFrame?

Barbara Streisand
发布: 2024-12-27 15:43:11
原创
287 人浏览过

How Can I Effectively Pivot a Pandas DataFrame?

如何对数据框进行透视?

透视是一种转换,它采用具有代表类别的列和代表值的行的数据框,并重新定向它,以便类别位于行中,值位于列中,索引设置为原始行值。

基本语法:

df.pivot(index=<row_labels>, columns=<col_labels>, values=<value_cols>)
登录后复制

示例:

  • 在单个列上进行透视:
df.pivot(index='row', columns='col', values='val')
登录后复制
  • 以多个为中心列:
df.pivot(index=['row', 'item'], columns='col', values='val')
登录后复制
  • 对多个值进行透视:
df.pivot(index='row', columns='col', values=['val0', 'val1'])
登录后复制
  • 使用自定义聚合函数进行透视:
df.pivot(index='row', columns='col', values='val', aggfunc='mean')
登录后复制
  • 处理重复keys:

默认情况下,如果行或列标签中有重复的键,将会引发错误。或者,您可以使用:

df.pivot_table(index='row', columns='col', values='val', fill_value=0)
登录后复制
  • 其他旋转方法:
  • groupby unstack:

    df.groupby('row', 'col')['val'].mean().unstack(fill_value=0)
    登录后复制
  • pd.DataFrame .set_index:使用set_index设置行轴和列轴,然后unstack到数据透视表。
  • pd.crosstab:专为创建交叉表或数据透视表而设计。

高级透视技术:

  • 交叉表(频率计数):
pd.crosstab(index=df['row'], columns=df['col'], values=df['val'], aggfunc='count')
登录后复制
  • 多个聚合函数:
df.pivot_table(index='row', columns='col', values='val', aggfunc=['mean', 'sum'])
登录后复制
  • 按多列细分:
df.pivot_table(index='row', columns=['item', 'col'], values='val', fill_value=0, aggfunc='mean')
登录后复制

以上是如何有效地透视 Pandas DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板