pandas生成透视表的函数,pandas中数据透视表的方法
今天,我想和大家分享熊猫的四个关于数据透视的通用功能。当你在数据处理中遇到这样的需求,你可以很好的处理。跟边肖学。
00-1010 pandas . melt()pandas . pivot()pandas . pivot _ table()pandas . crosstab()大家好,我是丁小洁!
今天给大家分享一下熊猫关于数据透视的四个通用功能,可以很好的应对这样的数据处理需求。
目录
melt函数的主要功能是将数据帧从宽格式转换为长格式。
" pandas.melt(frame,id_vars=None,value_vars=None,var_name=None,value_name=value ,col_level=None,ignore_index=True)
"
参数含义
Id_vars: tuple,list或ndaray,可选,列value _ vars作为标识符变量:tuple,list或ndaray,可选,pivot列,如果未指定,则使用未设置为Id_vars的所有列。Var _ name: scalar,默认为None,variable用作列名value_name: scalar,默认为 value ,value列的名称col _ level: int或str是可选的。如果列是多级索引,melt将应用于指定级别ignore _ index: bool,默认为True,相当于从0重新排序。如果为False,将保留原始索引,并复制索引标签。让我们看一个例子:
importpandasaspd
df=pd。数据帧(
{Region 3360 [A , B , C],
2020:[80,60,40],
2021:[800,600,400],
2022:[8000,6000,4000]})
pd.melt(df,
Id_vars=[ region],
value_vars=[2020 , 2021 , 2022])
设置变量名称和值名称。
df=pd.melt(df,
Id_vars=[ region],
value_vars=[2020 , 2021 , 2022],
Var_name= year ,
Value_name= sales )
pandas.melt()
Pivot函数主要用于通过索引和列值来重构数据帧。
" pandas.pivot(数据,索引=无,列=无,值=无)
"
参数含义
数据:数据帧对象索引:可选,新数据帧列的索引:用于创建新数据帧的列值:可选,用于填充新数据帧的值。
p>用上面的结果举个例子:
df.pivot(index=年份,
也可以写成以下格式。
df.pivot(index=年份, columns=地区)[销售额]
添加一个销量列,同时统计两个values
,这样会使columns
变成多层索引。
df[销量] = df[销售额]/10
添加一个月份列,指定两个index
。
df[月份] = [f{m}月 for m in range(1, 4)]*3
使用pivot
时需要注意,当index
,columns
出现重复时,会导致ValueError
。
df = pd.DataFrame(
df.pivot(index=地区,
pandas.pivot_table()
这个函数之前已经单独讲过了,详见Pandas玩转数据透视表,相比于pivot
,pivot_table
的灵活性更强。
pandas.crosstab()
crosstab
函数计算两个(或多个)数组的简单交叉表。默认情况下计算元素的频率表。
pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, margins_name='All', dropna=True, normalize=False)
看下例子:
这里默认计算频率。
import numpy as np
新建一个values
列,计算总和。
array_D = np.array([1, 4, 9, 16, 25, 36])
到此这篇关于一文搞懂Pandas数据透视的4个函数的使用的文章就介绍到这了,更多相关Pandas数据透视内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。