问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Pandas数据透视表(pivot_table)的存储与读取

创作时间:
作者:
@小白创作中心

Pandas数据透视表(pivot_table)的存储与读取

引用
CSDN
1.
https://m.blog.csdn.net/m0_47149835/article/details/139301205

在使用Pandas处理数据透视表时,经常会遇到列名多级索引的问题。本文将详细介绍如何创建数据透视表、保存为Excel文件,以及如何正确读取包含多级列索引的Excel文件。

当对某个DataFrame进行pd.pivot_table操作时,输出的透视表的列名会根据参数columns所指定的列内含有的类别进行细分,最终生成到Excel时,列名也会占据多行,虽然提高了肉眼的可读性,但再次用程序加载得到的表并不方便处理。

创建一个DataFrame

import pandas as pd

df = pd.DataFrame(
    data={'User': ['Jaye', 'Ben', 'Ben', 'Jaye', 'Leo'], 
          'Class one?': ['Y', 'N', 'Y', 'Y', 'N'], 
          'Value': [5, 7.0, 10, 2, 8.8], })

print(df)

输出结果:

   User Class one?  Value
0  Jaye          Y    5.0
1   Ben          N    7.0
2   Ben          Y   10.0
3  Jaye          Y    2.0
4   Leo          N    8.8

创建数据透视表

df_pivot = pd.pivot_table(df, index='User', columns='Class one?', aggfunc='sum')
df_pivot.to_excel('testing.xlsx')

仔细观察MultiIndex

pivot_tablecolumns是MultiIndex,遍历输出后发现它由多个tuple组成,每一个tuple都代表了最细粒度的类别。

输出到Excel并重新读取

通过参数index_col(对应index)和header(对应columns),就可以读取前文已经输出到Excel的数据透视表

pd.read_excel('testing.xlsx', index_col=0, header=[0, 1])
  1. index_col=0表示将第一列设为index
  2. header=[0, 1]表示将第1~2行作为columns
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号