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 ...
随机推荐
- ubuntu开机只有一条横杠在闪的解决办法
1.制作U盘启动盘,并试用ubuntu 2.输入以下命令,根据提示完成修复 sudo add-apt-repository ppa:yannubuntu/boot-repair && ...
- SUSTOJ_路痴的单身小涵(图中最短路的条数)
去年因为太low没有做出来校赛的最后一题,遂今年校赛做了这个题,下面我做详细描述. 原题链接 本题大意:给定一个无向图G,每个边的权值为1,图中L表示起点,C表示终点,#表示未通路,给定时间k,让你判 ...
- 三连击 P1008 洛谷 python写法
三连击 P1008 洛谷 题意 将\(1,2, \cdots,9\)共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数. 解题思路 这里我使用了 ...
- 重载与重写、多态——java
方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式. (1)方法重载是一个类中定义了多 ...
- Hls平台实现sobel算法(一)
索贝尔(Sobel)算子主要用于边缘检测,根据像素点的上下.左右邻点的灰度加权差与阈值进行比较,在边缘处达到极值的方法实现边缘检测. -------------序 一.原理性运行 流水线操作,将输入图 ...
- NancyFx框架之检测任务管理器
先建一个空的项目和之前的NancyFx系列一样的步骤 然后建三个文件夹Models,Module,Views 然后分别安装一下组件 jQuery Microsoft.AspNet.SignalR Mi ...
- C#Stopwatch的简单计时 [收藏]
Stopwatch 类 命名空间:System.Diagnostics.Stopwatch 实例化:Stopwatch getTime=new Stopwatch(); 开始计时:getTime.St ...
- webpack webpack.config.js配置
安装指定版本的webpack npm install webpack@3.6 -g 安装live-server 运行项目插件 输入live-server 运行后自动打开网页 npm ins ...
- 2018ICPC银川 L Continuous Intervals 单调栈 线段树
题意:给你一个序列,问你这个序列有多少个子区间,满足把区间里的数排序之后相邻两个数之间的差 <= 1 ? 思路:https://blog.csdn.net/u013534123/article/ ...
- 树形dp专栏
前言 自己树形dp太菜了,要重点搞 219D Choosing Capital for Treeland 终于自己做了一道不算那么毒瘤的换根dp 令 \(f[u]\) 表示以 \(u\) 为根,子树内 ...