透视表和交叉表

本文介绍了如何使用Python的Pandas库进行数据透视和汇总操作,包括创建透视表和交叉表,详细展示了不同参数如index、columns、aggfunc和fill_value的作用,以及它们如何帮助我们更好地理解和分析数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
 
 
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
 
df = DataFrame({'sex':['man','man','women','women','man','women','man','women','women'],
               'age':[15,23,25,17,35,57,24,31,22],
               'smoke':[True,False,False,True,True,False,False,True,False],
               'height':[168,179,181,166,173,178,188,190,160]})
df
 
 
Out[3]:
 ageheightsexsmoke
015168manTrue
123179manFalse
225181womenFalse
317166womenTrue
435173manTrue
557178womenFalse
624188manFalse
731190womenTrue
822160womenFalse
 

透视表

各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中

 

行分组透视表 设置index参数

 
 
 
# 默认得到一个平均值
df.pivot_table(index=[df.sex,df.smoke])
 
 
Out[4]:
  ageheight
sexsmoke  
manFalse23.500000183.5
True25.000000170.5
womenFalse34.666667173.0
True24.000000178.0
 

列分组透视表 设置columns参数

 
df.pivot_table(columns=df.smoke)
 
 
Out[5]:
smokeFalseTrue
age30.224.50
height177.2174.25
 

行列分组的透视表 同时设定index、columns参数

In [9]:
 
 
 
 
 
df.pivot_table(index=df.sex,columns=df.smoke)
 
 
Out[9]:
 ageheight
smokeFalseTrueFalseTrue
sex    
man23.50000025.0183.5170.5
women34.66666724.0173.0178.0
 

aggfunc:设置应用在每个区域的聚合函数,默认值为np.mean

In [10]:
 
 
 
 
 
df.pivot_table(index=df.sex,aggfunc=np.sum)
 
 
Out[10]:
 ageheightsmoke
sex   
man977082.0
women1528752.0
 

fill_value:替换结果中的缺失值

 

交叉表

是一种用于计算分组频率的特殊透视图,对数据进行汇总

 

pd.crosstab(index,colums)

  • index:分组数据,交叉表的行索引
  • columns:交叉表的列索引
 
pd.crosstab(index=df.sex,columns=df.smoke)
 
 
Out[6]:
smokeFalseTrue
sex  
man22
women32

转载于:https://www.cnblogs.com/ws0751/p/8361362.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值