网站友情链接要加什么用,南通seo快速排名,公司网络架构,堆龙德庆网站建设用Python实现数据的透视表的方法来源#xff1a;中文源码网 浏览#xff1a; 次 日期#xff1a;2019年11月5日【下载文档: 用Python实现数据的透视表的方法.txt 】(友情提示:右键点上行txt文档名-目标另存为)用Python实现数据的透视表的方法在处理数据时#x…用Python实现数据的透视表的方法来源中文源码网 浏览 次 日期2019年11月5日【下载文档: 用Python实现数据的透视表的方法.txt 】(友情提示:右键点上行txt文档名-目标另存为)用Python实现数据的透视表的方法在处理数据时经常需要对数据分组计算均值或者计数在Microsoft Excel中可以通过透视表轻易实现简单的分组运算。而对于更加复杂的分组运算Python中pandas包可以帮助我们实现。1 数据首先引入几个重要的包import pandas as pdimport numpy as npfrom pandas import DataFrame,Series通过代码构造数据集dataDataFrame({key1:[a,b,c,a,c,a,b,a,c,a,b,c],key2:[one,two,three,two,one,one,three,one,two,three,one,two],num1:np.random.rand(12),num2:np.random.randn(12)})得到数据集如下datakey1 key2 num1 num20 a one 0.268705 0.0840911 b two 0.876707 0.2177942 c three 0.229999 0.5744023 a two 0.707990 -1.4444154 c one 0.786064 0.3432445 a one 0.587273 1.2123916 b three 0.927396 1.5053727 a one 0.295271 -0.4976338 c two 0.292721 0.0988149 a three 0.369788 -1.1574262 交叉表—分类计数按照不同类进行计数统计是最常见透视功能可以通(1)crosstab#函数crosstab(index, columns, valuesNone, rownamesNone, colnamesNone, aggfuncNone, marginsFalse, dropnaTrue, normalizeFalse)crosstab的index和columns是必须要指定复制的参数pd.crosstab(data.key1,data.key2)结果如下key2 one three twokey1a 3 1 1b 0 1 1c 1 1 1想要在边框处增加汇总项可以指定margin的值为Truepd.crosstab(data.key1,data.key2,marginsTrue)结果key2 one three two Allkey1a 3 1 1 5b 1 1 1 3c 1 1 2 4All 5 3 4 12(2)pivot_table函数pivot_table(data, valuesNone, indexNone, columnsNone, aggfuncmean, fill_valueNone, marginsFalse, dropnaTrue, margins_nameAll)使用pivot_table函数同样可以实现运算函数默认值aggfuncmean,指定为aggfunccount即可data.pivot_table(num1,indexkey1,columnskey2,aggfunccount)结果相同key2 one three twokey1a 3 1 1b 1 1 1c 1 1 2(3)groupby通过groupby相对来说会更加复杂首先需要对data按照key1和key2进行聚类然后进行count运算再将key2的index重塑为columnsdata.groupby([key1,key2])[num1].count().unstack()结果key2 one three twokey1a 3 1 1b 1 1 1c 1 1 23 其它透视表运算(1)pivot_tablepivot_table(data, valuesNone, indexNone, columnsNone, aggfuncmean, fill_valueNone, marginsFalse, dropnaTrue, margins_nameAll)要进行何种运算只需要指定aggfunc即可。默认计算均值data.pivot_table(indexkey1,columnskey2)outnum1 num2key2 one three two one three twokey1a 0.193332 0.705657 0.203155 -0.165749 2.398164 -1.293595b 0.167947 0.204545 0.661460 0.555850 -0.522528 0.143530c 0.496993 0.033673 0.206028 -0.115093 0.024650 0.077726分类汇总呢并求和data.pivot_table(indexkey1,columnskey2,aggfuncsum)结果num1 num2key2 one three two one three twokey1a 0.579996 0.705657 0.203155 -0.497246 2.398164 -1.293595b 0.167947 0.204545 0.661460 0.555850 -0.522528 0.143530c 0.496993 0.033673 0.412055 -0.115093 0.024650 0.155452也可以使用其它自定义函数#定义一个最大值减最小值的函数def max_min (group):return group.max()-group.min()data.pivot_table(indexkey1,columnskey2,aggfuncmax_min)结果num1 num2key2 one three two one three twokey1a 0.179266 0.0 0.000 3.109405 0.0 0.000000b 0.000000 0.0 0.000 0.000000 0.0 0.000000c 0.000000 0.0 0.177 0.000000 0.0 1.609466(2)通过groupby普通的函数如meansum可以直接应用data.groupby([key1,key2]).mean().unstack()返回结果num1 num2key2 one three two one three twokey1a 0.193332 0.705657 0.203155 -0.165749 2.398164 -1.293595b 0.167947 0.204545 0.661460 0.555850 -0.522528 0.143530c 0.496993 0.033673 0.206028 -0.115093 0.024650 0.077726以上这篇用Python实现数据的透视表的方法就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持中文源码网。亲,试试微信扫码分享本页! *^_^*