pandas melt 与pivot 函数
(掌握这个,基本就完美无缺的任意按照自己的想法,更改列了。)
背景:
最近有个excel 数据需要转化的过程。 数据量还挺大的,大概有30多万。 需要把某些行变成列,有些列又变成行。 这个操作本身就比较烦躁。
更何况数据量达到了几十万的情况下, excel 基本就卡死了。
1 把城市合为一列
2 将空气类型type 分开为成为列
先贴样本:

转化后的结果:

苦恼了很久。
实践:
melt 函数讲解,
frame, -- 需要处理的数据集
id_vars=None, -- 不需要改变的列
value_vars=None,--需要转换的列名,如果剩下的列全部都要转换,就不用写了
var_name=None, --设置对应的维度名
value_name="value", -- 设置对应的度量值名
col_level=None, -- 不知道
first_data_2 = self.pd.melt(deal_data, id_vars=['date', 'hour', 'type'], value_vars=city_data,
var_name='city', value_name='count_clue').fillna(0)
在这里, deal_data 是需要处理数据集, id_vars 不变的列, date , hour, type , 需要转化的列 数组city_data [] , 理论上应该是不用填,下面全部转化。
对应的维度名:city , 对应合起来的度量值。count_clue。
这样就把列都合起来了 。
结果展示

然后我们用piovt 函数,把它列 type 同样列 转变成行。
first_data_3 = self.pd.DataFrame(
self.pd.pivot_table(first_data_2, index=['date', 'hour', 'city', ], columns='type', values='count_clue'))
piovt_table ,我懂的太少了。都是照抄的
贴个链接, 以我的理解, index 是需要的列,然后columns 就是要展开的列, value 是要展开的值,就这样。
https://zhuanlan.zhihu.com/p/31952948
pandas melt 与pivot 函数的更多相关文章
- python pivot() 函数
以下为python pandas 库的dataframe pivot()函数的官方文档: Reshape data (produce a “pivot” table) based on column ...
- Oracle行转列(使用pivot函数)
在日常使用中,经常遇到这样的情况,需要将数据库中行转化成列显示,如 转化为 这个时候,我们就需要使用pivot函数 百度后,参考网址http://www.2cto.com/database/20150 ...
- SQL Server数据库PIVOT函数的使用详解(一)
http://database.51cto.com/art/201108/285250.htm SQL Server数据库中,PIVOT在帮助中这样描述滴:可以使用 PIVOT 和UNPIVOT 关系 ...
- oracle 10G 没有 PIVOT 函数怎么办,自己写一个不久有了
众所周知,静态SQL的输出结构必须也是静态的.对于经典的行转列问题,如果行数不定导致输出的列数不定,标准的答案就是使用动态SQL, 到11G里面则有XML结果的PIVOT. 但是 oracle 10G ...
- SqlServer 行转列,列转行 以及PIVOT函数快速实现行转列,UNPIVOT实现列转行
一 .列转行 创建所需的数据 CREATE TABLE [StudentScores]( [UserName] NVARCHAR(20), --学生姓名 [Subject] NVARCHAR(3 ...
- SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行
我们在写Sql语句的时候没经常会遇到将查询结果行转列,列转行的需求,拼接sql字符串,然后使用sp_executesql执行sql字符串是比较常规的一种做法.但是这样做实现起来非常复杂,而在SqlSe ...
- 分位函数(四分位数)概念与pandas中的quantile函数
p分位函数(四分位数)概念与pandas中的quantile函数 函数原型 DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpola ...
- PIVOT函数与UNPIVOT函数的运用
PIVOT用于将行转为列,完整语法如下: TABLE_SOURCE PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ...
- SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行(转)
我们在写Sql语句的时候没经常会遇到将查询结果行转列,列转行的需求,拼接sql字符串,然后使用sp_executesql执行sql字符串是比较常规的一种做法.但是这样做实现起来非常复杂,而在SqlSe ...
随机推荐
- [Git] 004 初识 Git 与 GitHub 之查看历史记录
在 GitHub 的 UI 界面使用 Git 查看历史纪录 1. 右侧有个 history 2. 点击后跳转页面 3. 点击相应标题(commit 时写的),进入相应版本(历史) 4. 我选择了 I ...
- js中return、return false 、return true各自代表什么含义
return语句代表需要返回一个值,如果不需要就不需要使用return语句.都类似一个出口,return 可以结束方法体中 return后面部分代码的执行.return false 或者 return ...
- Spring之使用注解实例化Bean并注入属性
1.准备工作 (1)导入jar包 除了上篇文章使用到的基本jar包外,还得加入aop的jar包,所有jar包如下 所需jar包 (2)配置xml <?xml version="1.0& ...
- 在eclipse上配置多个jdk
在实际生产中,可能会遇到这样的问题:在eclipse中存在多个项目时,可能不同的项目需要不同的jdk版本.这时,我们就可以给eclipse配置多个jdk进行切换. 注:貌似只有较新版eclipse才能 ...
- XMLHttpRequest.setRequestHeader()
在AJAX中,如果需要像 HTML 表单那样 POST 数据,需要使用 setRequestHeader() 方法来添加 HTTP 头. 然后在 send() 方法中规定需要希望发送的数据: setR ...
- glibc2.22
- 部署Tomcat服务器
部署Tomcat服务器,具体内容如下: 1.安装部署JDK基础环境; 2.安装部署Tomcat服务器; 3.创建JSP测试页面,文件名为test.jsp,显示服务器当前时间. 然后客户机访问Web服务 ...
- [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
Problems meet in the project: [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序((IM002) [Microso ...
- C++使用静态类成员时出现的一个问题
开发环境 Qt Creator 4.8.2 编译器 MinGw 32-bit 在类中定义了一个static data member class Triangular{ public: static b ...
- html5 新增和改良的input 类型实例
url test1.html <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...