Understanding the Transform Function in Pandas
Understanding the Transform Function in Pandas
What is transform?
我在 Python Data Science Handbook 的书中找到了关于这个话题的说明。正如书中所描述的,transform 是一个和groupby同时使用的操作。我推测大多数的pandas用户可能已经用过了aggregate, filter 或者 apply在使用 groupby的同时。然而,transform 有点难以理解。
aggregation会返回数据的缩减版本,而transformation能返回完整数据的某一变换版本供我们重组。这样的transformation,输出的形状和输入一致。一个常见的例子是通过减去分组平均值来居中数据。
First Approach - Merging
data_str='''account,name,order,sku,quantity,unit price,ext price
383080,Will LLC,10001,B1-20000,7,33.69,235.83
383080,Will LLC,10001,S1-27722,11,21.12,232.32
383080,Will LLC,10001,B1-86481,3,35.99,107.97
412290,Jerde-Hilpert,10005,S1-06532,48,55.82,2679.36
412290,Jerde-Hilpert,10005,S1-82801,21,13.62,286.02
412290,Jerde-Hilpert,10005,S1-06532,9,92.55,832.95
412290,Jerde-Hilpert,10005,S1-47412,44,78.91,3472.04
412290,Jerde-Hilpert,10005,S1-27722,36,25.42,915.12
218895,Kulas Inc,10006,S1-27722,32,95.66,3061.12
218895,Kulas Inc,10006,B1-33087,23,22.55,518.65
218895,Kulas Inc,10006,B1-33364,3,72.3,216.9
218895,Kulas Inc,10006,B1-20000,-1,72.18,-72.18'''
import io
import pandas as pd
data=pd.read_csv(io.StringIO(data_str))
order_total = data.groupby('order')['ext price'].sum().rename('order total').reset_index()
data_merge=data.merge(order_total)
data_merge['Percnet Order']=data_merge['ext price']/data_merge['order total']
what is happening with the standard groupby
Second Approach - Using Transform
order_total=data.groupby('order')['ext price'].transform('sum')
data['percent order'] = data['ext price']/order_total
what is happening in transform
Understanding the Transform Function in Pandas的更多相关文章
- Understanding JavaScript Function Invocation and "this"
Understanding JavaScript Function Invocation and "this" 11 Aug 2011 Over the years, I've s ...
- Pandas进阶笔记 (一) Groupby 重难点总结
如果Pandas只是能把一些数据变成 dataframe 这样优美的格式,那么Pandas绝不会成为叱咤风云的数据分析中心组件.因为在数据分析过程中,描述数据是通过一些列的统计指标实现的,分析结果也需 ...
- pandas 之 特征工程
import numpy as np import pandas as pd So far(到目前为止) in this chapter we've been concerned with rearr ...
- 深入node之Transform
Transform流特性 在开发中直接接触Transform流的情况不是很多,往往是使用相对成熟的模块或者封装的API来完成流的处理,最为特殊的莫过于through2模块和gulp流操作.那么,Tra ...
- CSS3 Transform——transform-origin
2012年9月,W3C组织发布了CSS3变形工作草案.CSS3变形允许CSS把元素转变为2D 或3D空间,这个草案包括了CSS3 2D变形和CSS3 3D变形. CSS3变形是一些效果的集合,比如平移 ...
- 数据处理:12个使得效率倍增的pandas技巧
数据处理:12个使得效率倍增的pandas技巧 1. 背景描述 Python正迅速成为数据科学家偏爱的语言,这合情合理.它拥有作为一种编程语言广阔的生态环境以及众多优秀的科学计算库.如果你刚开始学习P ...
- pandas.DataFrame
1.可以使用单个列表或列表列表创建数据帧(DataFrame). 单个列表 import pandas as pd data = [1,2,3,4,5] df = pd.DataFrame(data) ...
- Node.js数据流Stream之Duplex流和Transform流
Duplex流一个很好的例子是TCP套接字连接.需要实现_read(size)和_Write(data,encoding,callback)方法. var stream = require('stre ...
- Unity3D性能优化小tips——把this.transform缓存缓存起来
Unity3D开发时中有一个小tips,这在官方的文档里其实有提及的,但不那么显眼,这里小说一下: 在MonoBehaviour进行编程时,我们经常会用this.transform, this.gam ...
随机推荐
- python_0基础开始_day12
第十二节 一,生成器 生成器的核心:生成器的本质就是迭代器 迭代器是python自带的 生成器是程序员自己写的一种迭代器 在python中有三种方式来创建生成器: 基于函数编写 推导式方式编写 pyt ...
- pycharm 快捷键练习 和基本英语单词练习
通过练习 一下快捷键 打代码的速度得到提升 pycharm以下 快捷键+快捷键意义 ctrl+a 全选 ctrl+c 复制(不选中默认复制一行) ctrl+v 粘贴 ctrl+x 剪切 ctrl+f ...
- Git服务器搭建与配置管理
Git for Windows TortoiseGit:是一个开放的git版本控制系统的源客户端,支持Winxp/vista/win7.离不开真正的Git(Git for windows版本名字又叫M ...
- Robot Framework(二)访问数据库
1.在Test suit中添加Library 直接输入库名,点击确定即可 DatabaseLibrary BuiltIn 2.在用例中,连接数据库,并执行sql Connect To Database ...
- Leetcode简单题
# Title Solution Acceptance Difficulty Frequency 1 Two Sum 44.5% Easy 2 Add Two Number ...
- 二、redis学习(java操作redis缓存的工具jedis)
- Java操作FTP,从FTP上读取指定文件,把指定文件上传到FTP
需要添加的依赖 <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> ...
- 2019.9.20使用kali中的metasploi获取windows 的权限
1 kali 基于debin的数字取证系统,上面集成了很多渗透测试工具,其前身是bt5r3(bractrack) 其中Metasploit是一个综合利用工具,极大提高攻击者渗透效率,使用ruby开发的 ...
- vi 必须要学会的技能
vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对 ...
- Linux 指令总结
1. 显示本机信息 显示ip地址 hostname -i 显示当前使用用户 whoani 显示cpu信息 lscpu