Pandas透视表与交叉表的使用
作者:阿松爱睡觉
Pandas中的交叉表和透视表的作用相似,本文就来介绍一下Pandas透视表与交叉表的使用,具有一定的参考价值,感兴趣的可以了解一下
透视表
透视表是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上得分组建将数据分配到各个矩形区域中。在 pandas 中,可以通过 pivot_table
函数创建透视表。
pivot_talbe 函数的参数:
DataFrame.pivot_table(self, values=None, index=None, columns=None,ggfunc='mean', fill_value=None, .margins=False,dropna=True, margins_name='All')
代码操作示例:
data = {'A': [1, 2, 2, 3, 2, 4], 'B': [2014, 2015, 2014, 2014, 2015, 2017], 'C': ["a", "b", "c", "d", "e", "f"], 'D': [0.5, 0.9, 2.1, 1.5, 0.5, 0.1] } df = pd.DataFrame(data) df.pivot_table(index=["B"], columns=["C"], values=["A"], aggfunc=sum, margins=True) Output: A C a b c d e f All B 2014 1.0 NaN 2.0 3.0 NaN NaN 6 2015 NaN 2.0 NaN NaN 2.0 NaN 4 2017 NaN NaN NaN NaN NaN 4.0 4 All 1.0 2.0 2.0 3.0 2.0 4.0 14
交叉表
交叉表是一种用于计算分组频率的特殊透视表。通常使用 crosstab 函数来创建交叉表。
crosstab 的参数
pd.crosstab(index,columns,values=None,rownames=None colnames=None,aggfunc=None,margins=False,dropna=True,normalize=False)
其中 rownames 可以设置行名,colnames 可以设置列名,而且前两个参数可以是数组、Series 或数组列表。
代码示例:
data = {'A': [1, 2, 2, 3, 2, 4], 'B': [2014, 2015, 2014, 2014, 2015, 2017], 'C': ["a", "b", "c", "d", "e", "f"], 'D': [0.5, 0.9, 2.1, 1.5, 0.5, 0.1] } df = pd.DataFrame(data) pd.crosstab(index=[df["B"],df["A"]], columns=df["C"], values=df["A"], aggfunc=sum, margins=True) Output: C a b c d e f All B A 2014 1 1.0 NaN NaN NaN NaN NaN 1 2 NaN NaN 2.0 NaN NaN NaN 2 3 NaN NaN NaN 3.0 NaN NaN 3 2015 2 NaN 2.0 NaN NaN 2.0 NaN 4 2017 4 NaN NaN NaN NaN NaN 4.0 4 All 1.0 2.0 2.0 3.0 2.0 4.0 14
到此这篇关于Pandas透视表与交叉表的使用的文章就介绍到这了,更多相关Pandas透视表与交叉表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!