pandas pivot实现行转列

pivot_table实现行转列

  • pivot_table
  • 函数
  • 样例

pivot_table

透视表是一种可以对数据动态排布并且分类汇总的表格格式。或许大多数人都在Excel使用过数据透视表,也体会到它的强大功能,而在pandas中它被称作pivot_table。其实际上是建立层次化索引。

函数

pivot_table(data, values=None, index=None, columns=None,aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
pivot_table有四个最重要的参数index、values、columns、aggfunc

  • index关于index和columns都支持列表,如果传入多个index则生成一个多重索引,如果是单一index,建议不要使用列表传入
  • columns传入想要将某一行的值转为例
  • Values可以对需要的计算数据进行筛选
  • aggfunc参数可以设置我们对数据聚合时进行的函数操作,min,max,np.sum np.mean等,默认是aggfunc=‘mean’。

样例

以下图的dataframe为例,我们想将每一个学生的学科成绩按列显示。
pandas pivot实现行转列_第1张图片
首先设置index,每个pivot_table必须设置index,这里index设置为UserName,然后将我们想要转为列的index传给columns
pd.pivot_table(df,index="UserName",columns="Subject")
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200116105528433.png?x-ossprocess=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDU0ODEzNg==,size_16,color_FFFFFF,t_70 =50*50)
通常转换完的表需要重设索引
pandas pivot实现行转列_第2张图片
至此就实现了行转列。

参考
Python中pandas透视表pivot_table功能详解(非常简单易懂)
pandas.DataFrame的pivot()和unstack()实现行转列

你可能感兴趣的:(python,pandas)