前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入Python数据分析:宽表如何重构为长表

深入Python数据分析:宽表如何重构为长表

作者头像
double
发布2019-05-28 18:54:48
2.1K0
发布2019-05-28 18:54:48
举报
文章被收录于专栏:算法channel算法channel算法channel

先来了解Pandas封装的顶层函数部分,其一:melt()函数,它位于Pandas包的最顶层,结构如下:

Pandas

|

melt()

melt()函数的原型如下:

frame为list型参数,后面都为position型参数。前者为通常意义的*args, 后者为 **kwargs.

frame不难猜测为Pandas的二维数组结构DataFrame,其他参数含义通过如下几个例子观察。

构造df 结构如下:

执行如下操作:

pd.melt(df, id_vars=['A'], value_vars=['B', 'C'])

结果如下:

观察

变化后的df行数变多了,A列名称保持不变;

第二列的column名称变为variable,取值变为 B 和 C(正好等于melt函数的第三个参数 value_vars);

第三列名为value,取值为原df的B和C列的值。

再验证

pd.melt(df2, id_vars=['a'], value_vars=['b', 'c', 'd'])

变化后的结构行数明显变更多了,由9行组成,但是列变少了,只有3列。

这里面引出2个概念

宽表( wide format) :指列数比较多

长表( long format) :行数比较多

回头核对官方给定melt的功能和参数

注意用词:unpivot 变化 DataFrame从宽格式到长格式,选择性地保留标示列,其实就是指 id_vars参数。

以上为两个最主要的参数,第二个value_vars指需要upivot的列。

思考

melt()函数的作用,它能将宽表变化为长表。在做特征分析列数较多,即为宽表时,我们不妨选择某些列为unpivot列,从而降低维度,增加行数据实现对数据的重构。

官方解释melt()中变化这个词使用了unpivot,因此大胆猜测它的逆操作为 pivot(),下一讲介绍 pivot.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档