利用Python实现数据透视表和交叉表

pd.pivot_table数据透视表与pd.crosstab交叉表 在数据分析中,常常需要用到数据透视表和交叉表,下面介绍pandas.DataFrame.pivot_table数据透视表和pandas.DataFrame.crosstab交叉表的用法和区别。 一、数据透视表 数据透视表用来做数据透视,可以通过一个或多个键分组聚合DataFrame中的数据,通过aggfunc参数决定聚合类型,是groupby的高级功能。 pd.pivot_table参数如下... 阅读详情

1、透视表 pivot table
 

pd.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean'
,fill_value=None,margins=False,dropna=True,margins_name='ALL')

其中,

data:DataFrame对象
values:要聚合的列或列的列表
index:数据透视的index,从原始数据的列中筛选
columns:数据透视表的columns,从原始数据的列中筛选
aggfunc:用于聚合的函数,默认为numpy,mean,支持numpy计算方法
import numpy as np
import pandas as pd              
date = ['2019-1-1','2019-1-2','2019-1-3']*3
date_time = pd.to_datetime(date)
df = pd.DataFrame({'date':date_time,
                   'key':list('abcdabcab'),
                   'values':np.random.rand(9)*10})
print('------------原数据------------')
print(df)

print('------------透视表1------------')
#也可以aggfunc='sum'
print(pd.pivot_table(df,values = 'values',index = ['date'],columns='key',aggfunc=np.sum))

print('------------透视表2------------')
#分别以date,key共同做数据透视,值为values:统计不同(date,key)情况下values的计数
#aggfunc=len(或者count):计数
print(pd.pivot_table(df,values = 'values',index = ['date','key'],aggfunc=len))

输出结果:

------------原数据------------
        date key    values
0 2019-01-01   a  6.372699
1 2019-01-02   b  0.649605
2 2019-01-03   c  4.897285
3 2019-01-01   d  7.758373
4 2019-01-02   a  1.576888
5 2019-01-03   b  8.217029
6 2019-01-01   c  5.454403
7 2019-01-02   a  5.072132
8 2019-01-03   b  2.875602
------------透视表1------------
key                a          b         c         d
date                                               
2019-01-01  6.372699        NaN  5.454403  7.758373
2019-01-02  6.649020   0.649605       NaN       NaN
2019-01-03       NaN  11.092630  4.897285       NaN
------------透视表2------------
                values
date       key        
2019-01-01 a       1.0
           c       1.0
           d       1.0
2019-01-02 a       2.0
           b       1.0
2019-01-03 b       2.0
           c       1.0

2、交叉表:crosstab
默认情况下,crosstab计算因子的频率,比如用于str的数据透视分析

pd.crosstab(index,columns,values=None,rownames=None
,colnames=None,aggfunc=None,margins=False,dropna=True,normalize=False)
import numpy as np
import pandas as pd

df = pd.DataFrame({'A':[1,2,2,2,2],
                   'B':[3,3,4,4,4],
                   'C':[1,1,np.nan,1,1]})

print('------------原数据------------')
print(df)

#如果crosstab只接收两个series,他将提供一个频率表
#用A的唯一值,统计B唯一值的出现次数  (A,B)= (1,3)C出现了1次   (A,B)= (2,4)出现了3次
print('------------交叉表1------------')
print(pd.crosstab(df['A'],df['B']))

print('------------交叉表2------------')
print(pd.crosstab(df['A'],df['B'],normalize=True))#以频率的方式显示

print('------------交叉表3------------')
print(pd.crosstab(df['A'],df['B'],values=df['C'],aggfunc=np.sum))#values:根据因子聚合的值数组
#aggfunc:如果未传递values数组,则计算频率表,如果传递数组,则按照指定计算
#这里相当于以A和B界定分组,计算出每组中第三个系列C的值

print('------------交叉表4------------')
print(pd.crosstab(df['A'],df['B'],values=df['C'],aggfunc=np.sum,margins=True))
#margins:布尔值,默认值False,添加行/列边距(小计)

输出结果:

------------原数据------------
   A  B    C
0  1  3  1.0
1  2  3  1.0
2  2  4  NaN
3  2  4  1.0
4  2  4  1.0
------------交叉表1------------
B  3  4
A      
1  1  0
2  1  3
------------交叉表2------------
B    3    4
A          
1  0.2  0.0
2  0.2  0.6
------------交叉表3------------
B    3    4
A          
1  1.0  NaN
2  1.0  2.0
------------交叉表4------------
B      3    4  All
A                 
1    1.0  NaN  1.0
2    1.0  2.0  3.0
All  2.0  2.0  4.0

 

Python实现数据透视表 用Python里的Pandas可以实现,虽然感觉Excel更方便 1.groupby + agg 不够直观,不好看 对贷款年份,贷款种类创建数据透视 train_data.groupby(['year_of_loan', 'class']).agg(d_roat =('isDefault', 'mean')) 2. crosstab pandas.crosstab(index, columns,values, rownames=None, colnames, aggfunc, margins, 阅读详情

相关推荐

Python中的aggfunc函数详解

在本文中,我们详细介绍了Python中的aggfunc函数,该函数用于执行数据的聚合操作。无论是对列表元素求和、计算平均值、查找最大值,还是使用初始值进行聚合,aggfunc函数都可以胜任。在这个示例中,我们使用aggfunc函数和lambda函数对列表中的元素进行求和,并指定初始值为10。我们使用aggfunc函数和lambda函数对列表中的元素进行求和,并将结果除以列表的长度,从而得到平均值。在这个示例中,我们使用aggfunc函数和lambda函数来查找列表中的最大值。示例1:对列表元素求和。

HackDashX的博客 2129

python pandas.pivot_table透视表函数

采用字典方法通过 lambda 方法可以传入自定义函数。

small__roc的博客 4070

Python数据分析:深入解析aggfunc函数及实战

在Pandas库中,aggfunc函数是DataFrame对象的一种聚合操作函数,它能够根据给定的条件对数据进行分组,并对每个分组进行指定的聚合操作。通过aggfunc函数,我们可以轻松地计算每个分组的平均值、最大值、最小值、总和等统计量,并将这些计算结果重新组合成一个新的DataFrame对象。通过本文的介绍,我们了解了aggfunc函数的基本知识和使用方法,并通过一个实际案例演示了如何使用aggfunc函数进行数据分析。通过这些信息,我们可以更加全面地了解学生的学习情况,并进一步指导教学工作。

与其临渊羡鱼,不如退而结网 2821

数据透视表——pivot_table学习(特征工程)

比如:华山三个,数量4/3,价格6000/3,账号就不用说了,三个都一样,均值自然就是其中一个;快手两个,数量4/2,价格6000/2。2:index 指定单索引\n索引变成了[客户名称]这一列,values显示的只有数字,而且都处理成均值。补充:当 values,aggfunc,columns 的取值只有一个时,有无中括号效果略有不同。3:指定多索引 索引顺序能决定不同的视觉体验,虽然结果是一致的。如果不需要显示全部的数值列,可以用Values参数指定。数值类型的字段只有:账号,数量,价格。

qq_44386182的博客 735

Python数据分析NumPy和pandas(三十四、数据透视表和交叉表)

上面使用的使用的是pivot_table默认使用的聚合函数 mean ,要使用其他函数可以将聚合函数或函数列表传递给pivot_table的 aggfunc 关键字参数。总结:掌握 pandas 的数据分组工具的使用,对数据清理和建模以及统计分析非常有用。不过,在这之前,我们掌握时间序列数据的处理。针对之前的小费数据集tip.csv,如果我们要计算一个按行中的日期和 smoker 排列的组均值表(默认pivot_table聚合类型),可以用如下代码实现。从上面输出可以看出,列方向,All 值是列的平均值;

FreedomLeo1的博客 973

【100天精通Python】Day60:Python 数据分析_Pandas高级功能-数据透视表pivot_table()和数据交叉表crosstab()常用功能和操作

Pandas数据透视表和交叉表pivot_table(),crosstab()常用操作和功能,包括自定义聚合函数,处理缺失值,重新排列多层索引,以及交叉表计算频率表,百分百表,边际频率等

qq_35831906的博客 1089

python常见统计分析处理函数

python常见统计分析处理函数

u012121721的博客 3076

pandas教程:Pivot Tables and Cross-Tabulation 数据透视表和交叉表

来制作,这个本节会进行介绍,除此之外还会有介绍如何利用多层级索引来进行。)的一部分,我们想要按国家和惯用手来进行汇总。来把数据聚合为表格,能沿着行或列,根据组键来整理数据。(数据透视表)是一种常见的数据汇总工具,常见与各种。行,这一行的值是不考虑任何组中任意两个组的平均值(数据集,假设我们想要计算一个含有组平均值的表格(列,这一列的值是不考虑吸烟周和非吸烟者的平均值(),是数据透视表的一个特殊形式,只计算组频率(想要使用不同的聚合函数,传递给。如果一些组合是空的(或。默认的聚合类型),按。

Cachel Wood的博客 347

crosstab交叉表_Python之Pandas使用系列(五):学习Pandas数据透视表和交叉表

这是《Python之Pandas使用系列》的第五个章节,本章我们主要介绍Pandas数据透视表和交叉表的使用。我们先看看Pandas中关于数据透视表与交叉表的定义描述:数据透视表(Pivot Table):"将电子表格样式的数据透视表创建为DataFrame。数据透视表中的级别将存储在MultiIndex对象中(结果DataFrame的索引和列上的分层索引)。交叉表(Crosstab):"计算两个...

weixin_39989939的博客 969

STM32L452与FPGA通信翻车?手把手教你关闭I2C时钟延展避坑(附OVR错误解决方案)

本文深入解析STM32L452与FPGA在I2C通信中因时钟延展功能导致的常见问题,提供关闭I2C时钟延展的详细配置方法(NOSTRETCH模式),并针对可能出现的OVR错误给出Combined模式解决方案。通过实战案例和波形分析,帮助工程师快速排查和解决嵌入式系统中的I2C兼容性问题。

e3f4g5的博客 215

PLS-SEM(偏最小二乘路径建模)模型拟合优度指标

PLS-SEM(偏最小二乘路径建模)是一种基于方差的分析方法,侧重于预测导向,通过迭代优化路径系数和外部权重来最大化潜变量的解释方差(R²)。其评估指标分为外部测量模型和结构模型两部分:外部测量模型关注潜变量与显变量的关系,通过标准化载荷(>0.7)、信度指标(Cronbach’s α、复合信度CR>0.7)、聚合效度(AVE>0.5)和区分效度(Fornell-Larcker标准、HTMT<0.85)来评估模型的可靠性和有效性。结构模型则检验潜变量间的因果关系,通过路径系数(β值)

wewil_lwin的博客 3231

python做数据透视表_Python--数据透视表和交叉表、数据读取

数据 透视表 and 交叉表先看数据是什么样的 ...#datedati = ['2019-11-01','2019-11-02','2019-11-03']*3rng=pd.to_datetime(dati)df=DataFrame({'date':rng,'key':list('abcdabcda'),'value':np.random.randn(9)*10})dfView Code简单的透...

weixin_39662142的博客 726

数字蓝牙功放

数字蓝牙功放(TPA3110+BK8000L),基于D类数字功放芯片TPA3116蓝牙功放,HIFI级带滤波15Wx2蓝牙数字功放,支持有线和蓝牙两种音源输入

runweipa的博客 1419

python 立体图 交叉 平面_《利用Python进行数据分析》 10.4 数据透视表与交叉表

10.4.1 数据透视表1.数据透视表简介数据透视表是电子表格程序和其他数据分析软件中常见的数据汇总工具。它根据一个或多个键聚合一张表的数据,将数据在矩形格式中排列,其中一些分组键是沿着行的,另一些是沿着列的。Python中的pandas透视表是通过groupby工具以及使用分层索引的重塑操作实现的DataFrame拥有一个pivot_table方法,并且还有一个顶层的pandas.pivot_t...

weixin_39814093的博客 213

在ubuntu上安装FastSufer【本机安装】

其实说是安装,只需要将文件下载并解压即可。推荐教程注意版本:在下面这个网址根据你的操作系统找到最新的版本安装。比如我的操作系统为Ubuntu 20.04.5,因此我安装ubuntu20-7.4.1的freesurfer打开~/.bashrc在~/.bashrc文件中添加以下三行关闭~/.bashrc更新~/.bashrc安装tcsh注意每次进入终端使用freesurfer时需要输入FREESURFER_HOME路径根据freesurfer的文件夹所在位置自己修改。

Xingwen_future的博客 2008

C#串口通信从入门到精通(7)——整数/浮点数与二进制、八进制、十六进制之间的转换与C#实现

本文详细介绍由博主开发的DataConvert串口通信帮助类的用法,该帮助类涵盖了串口通信领域所有的数据转换方法,帮助大家快速编写串口通信程序!

qq_34059233的博客 2880

crosstab交叉表_数据透视表和数据交叉表演示

在使用 Excel 中,经常会用到数据透视表。所以在 Python 这里,也简单演示下。#导入包frompandasimportSeries,DataFrameimportpandasaspdimportmatplotlib.pyplotasplt%matplotlibinline#拿到小费数据集tips=sns.load_dataset('tips')#数...

weixin_39707168的博客 655

100天精通Python(基础篇)——第20天:pip命令大全

pip升级命令:python -m pip install --upgrade pip pip install name //这里的name是要安装的第三方库名 pip install name -i http://mirrors.aliyun.com/pypi/simple/ 国内镜像源 阿里云:http://mirrors.aliyun.com/pypi/simple/ (推荐使用) 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple 豆瓣:http:/

努力让自己发光,对的人才能迎着光而来 18万+

交叉表和透视表

利用Python实现数据透视表和交叉表 1、透视表 pivot table 透视表(pivot table)是常见的数据汇总工具,它根据一个或多个键对数据进行聚合,根据行和列上的分组键将数据分配到矩形区域中。pandas中使用pivot_table方法创建透视表, pd.pivot_table(data,values=None,index=None,columns=None,aggfunc='me...

pythoncsdn111的博客 852

ComfyUI 局部重绘工作流示例

本文介绍了使用ComfyUI进行图像局部重绘的基础工作流程,重点讲解如何修改人物眼睛颜色和表情。主要内容包括:1.准备工作(可选下载DreamShaperv8模型);2.加载素材图片和工作流文件;3.使用遮罩编辑器绘制需要修改的区域;4.修改提示词控制生成内容;5.调整denoise参数优化效果。教程提供了详细的提示词示例(如"smile,blackeyes"等)和参数设置建议,帮助用户通过多次尝试获得理想效果。该工作流适用于修改图像局部区域而不影响整体画面。

云域A的博客 331

华为od统一考试B卷【单词搜索】C++ 实现

找到它是一个小游戏,你需要在一个矩阵中找到给定的单词。假设给定单词 HELLOWORD,在矩阵中只要能找到 H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。意区分英文字母大小写,并且您只能上下左右行走,不能走回头路。

MISAYAONE的博客 711

数据透视表和数据交叉表_数据透视表的数据提取

数据透视表和数据交叉表Consider the data of healthcare drugs as provided in the excel sheet. The concept of pivot tables in python allows you to extract the significance from a large detailed dataset. A pivot tab...

weixin_26713521的博客 489

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python数据透视表_Python 数据透视表_交叉表 - 树懒学堂

数据透视表与交叉表数据透视表是电子表格程序和其他数据分析软件中常见的数据汇总工具。它根据一个或多个键聚合一张表的数据,将数据在矩形格式中排列,其中一些分组键是沿着行的,另一些是沿着列的。DataFrame拥有一个pivot_table方法,并且还有还一个顶层的pandas.pivot_table函数。除了为groupby提供一个方便接口,pivot_table还可以添加部分总计,也称作边距。回到小...

weixin_39845206的博客 270

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【数据处理包Pandas】数据透视表

本文讲解数据处理包Pandas,围绕数据透视表的基本方法。

Morse_Chen的博客 2003

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Pandas数据分析15——pandas数据透视表和交叉表

pandas数据框的透视,交叉表,融合和堆叠等操作。

weixin_46277779的博客 3276

数据分析处理——透析表和交叉表

1透视表   数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。 之所以称为数据透视表,是因为可以动态地改变它们的版面布置,以便按照不同方式分析数据,也可以重新安排行号、列标和页字段。   数据分析中的透析表十分强大,甚至可以说是相当于分组聚合外加哑变量三个步骤了。但有个前提就是:在使用透析表之...

791
上一篇: 将excel批量转为csv文档
下一篇: 关于模型检验的ROC值和KS值的异同_ROC曲线和KS值
浅笑古今
博客等级 码龄13年 721粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值