转换数据

df.melt() 是 df.pivot() 逆转操作函数

将列名转换为列数据(columns name → column values),重构DataFrame

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

melt() 既是顶级类函数也是实例对象函数,作为类函数出现时,需要指明 DataFrame 的名称

参数 类型 说明
frame dataframe

被 melt 的数据集名称

在 pd.melt() 中使用

id_vars 

tuple

list

ndarray

可选项

不需要被转换的列名,在转换后作为标识符列(不是索引列)

value_vars 

tuple

list

ndarray

可选项

需要被转换的现有列

如果未指明,除 id_vars 之外的其他列都被转换

var_name  string

variable 默认值

自定义列名名称

设置由 'value_vars' 组成的新的 column name

value_name 

string

value 默认值

自定义列名名称

设置由 'value_vars'  的数据组成的新的 column name

col_level 

int

string

可选项

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

# id_vars 标识列,不是索引
# value_vars 被转换的列名
# var_name "被转换的列名"组成的新列的 name
# value_name "被转换的列名"下的数据 组成的新列的 name

zhe ge fei jin a ╮(╯▽╰)╭ bian liang ming zhe me zao gao ╮(╯▽╰)╭

>>> 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}})
>>> dfA  B  C
0  a  1  2
1  b  3  4
2  c  5  6#保留 B 列
>>> df.melt(id_vars=['A'], value_vars=['B'])A variable  value
0  a        B      1
1  b        B      3
2  c        B      5#保留 B C 列
>>> df.melt(id_vars=['A'], value_vars=['B', 'C'])A variable  value
0  a        B      1
1  b        B      3
2  c        B      5
3  a        C      2
4  b        C      4
5  c        C      6#自定义列名
>>> df.melt(id_vars=['A'], value_vars=['B'],var_name='myVarname', value_name='myValname')A myVarname  myValname
0  a         B          1
1  b         B          3
2  c         B          5#如果 columns 是MultiIndex
>>> df.columns = [list('ABC'), list('DEF')]
>>> dfA  B  CD  E  F
0  a  1  2
1  b  3  4
2  c  5  6>>> df.melt(col_level=0, id_vars=['A'], value_vars=['B'])A variable  value
0  a        B      1
1  b        B      3
2  c        B      5>>> df.melt(id_vars=[('A', 'D')], value_vars=[('B', 'E')])(A, D) variable_0 variable_1  value
0      a          B          E      1
1      b          B          E      3
2      c          B          E      5

df.pivot <---> df.melt() 之间的转换操作

>>> dfA  B  C
0  a  1  2
1  b  3  4
2  c  5  6>>> melted=df.melt('A')
>>> meltedA   variable value
0   a   B   1
1   b   B   3
2   c   B   5
3   a   C   2
4   b   C   4
5   c   C   6>>> reshaped =melted.pivot('A','variable','value')
>>> reshaped
variable    B   C
A
a       1   2
b       3   4
c       5   6>>> reshaped.reset_index()
variable    A   B   C
0       a   1   2
1       b   3   4
2       c   5   6

Pandas_规整数据_转换数据_melt()相关推荐

  1. 海量数据寻找最频繁的数据_寻找数据科学家的“原因”

    海量数据寻找最频繁的数据 Start with "Why" - Why do we do the work we do? 从"为什么"开始-我们为什么要做我们所 ...

  2. 管道过滤模式 大数据_大数据管道配方

    管道过滤模式 大数据 介绍 (Introduction) If you are starting with Big Data it is common to feel overwhelmed by t ...

  3. 海量数据寻找最频繁的数据_在数据中寻找什么

    海量数据寻找最频繁的数据 Some activities are instinctive. A baby doesn't need to be taught how to suckle. Most p ...

  4. 同时删除两张表的数据_把数据表中对应工作表的数据首先删除,然后导入数据...

    大家好,我们今日继续讲解VBA数据库解决方案的第28讲内容:利用VBA,把数据表中对应工作表的数据首先删除,然后向数据表中导入工作表数据.数据库的讲解已经持续一段时间了,从对简单数据库的认识到利用VB ...

  5. hive 导入hdfs数据_将数据加载或导入运行在基于HDFS的数据湖之上的Hive表中的另一种方法。

    hive 导入hdfs数据 Preceding pen down the article, might want to stretch out appreciation to all the well ...

  6. 数字经济的核心是对大数据_大数据崛起为数字世界的核心润滑剂

    数字经济的核心是对大数据 "Information is the oil of the 21st century, and analytics is the combustion engin ...

  7. kaggle比赛数据_表格数据二进制分类:来自5个Kaggle比赛的所有技巧和窍门

    kaggle比赛数据 This article was originally written by Shahul ES and posted on the Neptune blog. 本文最初由 Sh ...

  8. 有效数据包含额外数据_1-2-5 转换数据以包含在报表中

    有时,你的数据可能包含额外数据,或者数据的格式不正确. Power BI Desktop 包括 Power Query 编辑器工具,可帮助你对数据进行调整和转换,使其可用于你的模型和可视化效果. 在此 ...

  9. 汉字笔画数据_统计学原理 数据的预处理

    数据审核 数据审核-原始数据(raw data) 完整性审核 应调查的单位或个体是否有遗漏 所有的调查项目或变量是否填写齐全 准确性审核 数据是否真实反映实际情况,内容是否符合实际 数据是否有错误,计 ...

  10. java 一组数据中偏差较大的数据_深入分析数据结构中的队列(java代码实现)

    不知道你有没有过在餐厅打饭的经历,我们排的队其实就是我们今天所讲的主题,我们在排队的时候,在队列头部的人打好饭离开,新来的人排在队尾.这就是入队和出队的操作.所以,队列的特性就是先进先出.有了这个概念 ...

最新文章

  1. NSString拼接字符串和NSPredicate详解
  2. python 示例_带有示例的Python列表copy()方法
  3. metasploit 中文系统安装失败问题
  4. 女程序员在这里落脚啦
  5. ubuntu 14 配置vsftp
  6. 岳阳机器人餐厅在哪_普渡科技推出送餐与回盘两款全新餐饮机器人,打造“一来一回”新闭环...
  7. 【解决办法】hosts文件被劫持或者看不到办法
  8. (转载)一级域名(顶级域名),二级域名,主域名,次域名,父域名,子域名联系与区别及域名带不带www的区别
  9. python---字符串详解
  10. java实现打印金字塔
  11. 使用第三方SDK进行网页授权
  12. 与汇编语言相比c语言,汇编语言与C语言有什么区别
  13. 恶意进程(云查杀)-DDOS木马
  14. 逻辑思维:5对夫妇握手
  15. java腾讯滤镜接口_文档中心
  16. omapl138移植uboot系列之移植板卡(第五篇)
  17. SimpleMind Pro for Mac(思维导图)中文完整版
  18. 中建二测线上测评、笔试
  19. DaVinci(达芬奇)基本剪辑设置及其工具的应用
  20. 企业应该选择服务器租用、服务器托管还是云服务器?

热门文章

  1. VBA取得EXCEL表格中的行数和列数
  2. Win7 启动 0xc0000034错误 - 解决
  3. 用crontab每隔1分钟执行一个命令行脚本
  4. PS网页版在线使用PS网站源码
  5. 综合电商高保真移动端Axure原型模板
  6. bower报错:EINVALID Name must be lowercase, can contain digits, dots, dashes, @ or spaces
  7. Python基础学习(2)基本数据类型、三元运算、深浅拷贝、函数式编程、参数、变量、lambda表达式、python内置函数、文件处理、上下文管理、递归、命名空间、闭包
  8. java给word增加页码_Java 添加页码到Word文档
  9. 数据结构:图:图形和图形模型(Graphs and Graph Models)
  10. 蘑菇街测试开发实习生面经