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 ...
随机推荐
- Codeforces 1178C. Tiles
传送门 考虑一块块填,首先 $(1,1)$ 有 $4$ 种方案 然后根据 $(1,1)$ 的右边颜色,$(1,2)$ 有两种方案,$(1,3)$ 根据 $(1,2)$ 也有两种方案... 考虑 $(2 ...
- sql server case when
case具有两种格式:简单Case函数和Case搜索函数 简单case函数 实例:CASE sex when '1' then '男' when '2' then'女' els ...
- 第一章 T-SQL查询和编程基础 T-SQL语言基础(2)
T-SQL查询和编程基础 (2) 1.3 创建表和定义数据完整性 注意:表是属于架构,而架构又是属于数据库的 -- Create a database called testdb IF DB_ID(' ...
- C# 枚举转集合
记录一下,方便自己下次使用. public class EnumHelper { /// <summary> /// 将枚举转为集合 /// </summary> /// &l ...
- 总线(bus)简介
内容来自于<Computer Organization>,这是我的一篇学习笔记
- java实现spark常用算子之groupbykey
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spa ...
- 分布式的几件小事(五)dubbo的spi思想是什么
1.什么是SPI机制 SPI 全称为 Service Provider Interface,是一种服务发现机制. SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实 ...
- java知识点复习(1):
1.java整形变量078:在java数字里数字表达式前面加上0表示8进制,因为8进制里表示数字只有0-7,所以这里的表达式有错误.相对而言,077就是合法的,转换成10进制就是63(7*8+7=63 ...
- 让图表的Y轴 产生几个刻度距离
动态设置max 查看官网 写入方法 获取到你数据最大值 然后+个100
- win7(64位旗舰版)visual studio 2017无法安装及vs2015闪退问题解决方式
折腾了两天,几乎试了网上说的所有方法(就差重装系统了,看到有人说重装系统之后还是同样的问题,果断放弃重装),visual studio 2017的安装问题终于解决了,为了帮助同样还在折腾的初级开发者们 ...