pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)

frame: 要处理的数据集。

id_vars: 可选项,不需要被转换的列名。

value_vars: 可选项,需要转换的列,如果剩下的列全部都要转换,就不用写了。

var_name和value_name: 自定义设置对应的列名。

col_level :如果列是MultiIndex,则使用此级别。

function:Unpivot a DataFrame from wide to long format, optionally leaving identifiers set.

功能:将数据从从宽数据转换为长数据,有选择的保留标识列。

df.pivot() 将长数据集转换成宽数据集,df.melt() 则是将宽数据集变成长数据集

宽数据如下:

          9/30/2018  6/30/2018    3/31/2018
项目
Total     1,078,836    1,026,542    868,008
Cost      884,207      775,858      654,927
Profit    194,629      250,684      213,081

长数据如下:

项目           数额           时间
Total     1,078,836       9/30/2018
Cost      884,207         9/30/2018
Profit    194,629         9/30/2018
Total     1,026,542       6/30/2018
Cost      775,858         6/30/2018
Profit    250,684         6/30/2018
Total     868,008         3/31/2018
Cost      654,927         3/31/2018
Profit    213,081         3/31/2018

举例说明:

import pandas as pd
df = pd.DataFrame({'A': {0: 'a', 1: 'b', 2: 'c'},'B': {0: 1, 1: 3, 2: 5},'C': {0: 2, 1: 4, 2: 6}})
df

转换1:保留A列,对C列进行转换: 即将原C列的数据保留,原C列字段名作为新的数据列variable的数值。

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

明白了吗?其实可以这样理解:就是A列列名、内容保持不变,B列的列名、内容被丢掉,C列列名被重塑为variable列数据、内容被重塑为value列数据。

转换2:保留A列,剩下的列全部转换。

df=pd.melt(df,id_vars='A')
df

即: A列列名、内容保持不变,B、C列列名被重塑为variable列数据、内容被重塑为value列数据。

转换3:保留A列,剩下的列全部转换,给设置的列定义列名

df=pd.melt(df,id_vars='A',var_name='Cat',value_name='Dog')
df

即: A列列名、内容保持不变,B、C列列名被重塑为Cat列数据、内容被重塑为Dog列数据。

Pandas 的melt函数解析相关推荐

  1. Python pandas.DataFrame.melt函数方法的使用

    Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.Pandas提供了大量能使我们快速 ...

  2. pandas使用melt函数将宽表变换为窄表、id_vars参数指定原宽表聚合数据列、value_vars参数指定需要被压缩的数据列(单个、多个)、var_name指定压缩后数据列的名称

    pandas使用melt函数将宽表变换为窄表.id_vars参数指定原宽表聚合数据列.value_vars参数指定需要被压缩的数据列(单个.多个).var_name指定压缩后数据列的名称.value_ ...

  3. python重要的第三方库pandas模块常用函数解析之DataFrame

    pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...

  4. pandas的apply函数解析

    apply函数 apply函数是pandas里面所有函数中自由度最高的函数.该函数如下: DataFrame.apply(func, axis=0, broadcast=False, raw=Fals ...

  5. pd.DataFrame()函数解析(最清晰的解释)

    欢迎关注WX公众号:[程序员管小亮] DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表. 文章目录 欢迎关注WX公众号:[程序员管小亮] ==DataF ...

  6. pandas使用read_csv函数读取文件并解析日期数据列(parse dates)、pandas使用read_csv函数读取文件并将缺失值转化为空字符串

    pandas使用read_csv函数读取文件并解析日期数据列(parse dates).pandas使用read_csv函数读取文件并将缺失值转化为空字符串 目录

  7. 【Python专题】pandas.melt函数

    大家经常把melt函数和透视表pivot_table函数放在一起对比. 同时,这里有一篇不错的对比的文章.Pandas melt和pivot_table比excel透视表好用多了 以及pandas行转 ...

  8. 12个很棒的Pandas和NumPy函数,让解析事半功倍

    感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30428.html 大家都知道Pandas和NumPy函数很棒,它们在日常分析中起着重要的作用.没有这两 ...

  9. python pandas读取excel-Python使用Pandas读写Excel实例解析

    这篇文章主要介绍了Python使用Pandas读写Excel实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Pandas是python的一个 ...

最新文章

  1. eclipse运行 Maven Test命令时控制台输出乱码的解决办法
  2. 全球及中国有机肥料行业投资价值与营销品牌战略报告2022版
  3. 接口测试学习——jmeter分布式压测
  4. Android 7.1 bootchart触发后导致不断重启
  5. Wordpress 数据库查询错误 Call to a member function get_results() on null
  6. Java中测试异常的多种方式
  7. BS 和CS的区别
  8. 软件充值功能测试点有哪些?以手机话费充值为例
  9. linux下浏览器插件 打开本地程序,使用Url Schemes打开本地程序
  10. 防火墙开放21端口linux,linux防火墙开放80,3306,21,443端口
  11. ExoPlayer播放器 开发者指南(官方权威指南译文)
  12. Flask项目实战--管理系统
  13. 程序员:工作8年,存款100W,回老家买两套房子,网友:醒醒吧
  14. IDM下载百度网盘文件,获取百度网盘文件url地址,破解
  15. #define 详解
  16. 什么是Chrome和ChromeClient
  17. 神奇宝贝游戏 1.12
  18. SpringCloud 微服务框架
  19. GreenDao使用
  20. Python心经(2)

热门文章

  1. Flutter BLoC
  2. GOJS入门三-如何设置节点间的连线
  3. Java判断字符串是不是整数
  4. 阿里痛斥纵容造假包庇售假是社会公敌,对比四平台打假凸显“阿里力度”
  5. 2022-08-18 mysql/stonedb-aggregate场景group by分析
  6. 使用matlab编程给qq或163邮箱等发邮件
  7. Exchange绝妙使用-日历、邮件、通讯录双向同步
  8. 《无线通信与网络》 第一章 概述
  9. 网上看到一个提供WebService的地方,如果作webService测试,不妨试试
  10. 边缘设备、系统及计算杂谈(17)——Ansible学习