Lesson7——Pandas 使用自定义函数
简介
如果想要应用自定义的函数,或者把其他库中的函数应用到 Pandas 对象中,有以下三种方法:
- 操作整个 DataFrame 的函数:pipe()
 - 操作行或者列的函数:apply()
 - 操作单一元素的函数:applymap()
 
下面介绍了三种方法的使用。
1 操作整个数据表
通过给 pipe() 函数传递一个自定义函数和适当数量的参数值,从而操作 DataFrme 中的所有元素。
下面示例,实现了数据表中的元素值依次加 3。
df = pd.DataFrame(np.arange(6).reshape(2,3),columns=['col1','col2','col3'])
#相加前
print(df)
#相加后
print(df.pipe(add,3))
输出结果:
col1 col2 col3
0 0 1 2
1 3 4 5
col1 col2 col3
0 3 4 5
1 6 7 8
2 操作行或列
如果要操作 DataFrame 的某一行或者某一列,可以使用 apply() 方法,该方法与描述性统计方法类似,都有可选参数 axis,并且默认按列操作。示例如下:
df2 =pd.DataFrame(data=np.arange(6,12).reshape((-1,3)),columns=['col1','col2','col3'],index=[2,3])
df = df.append(df2)
df
输出结果:
col1 col2 col3
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11
继续:
df.apply(np.mean)
输出结果:
col1 4.5
col2 5.5
col3 6.5
dtype: float64
示例:
df.apply(np.mean,axis =1)
输出结果:
0 1.0
1 4.0
2 7.0
3 10.0
dtype: float64
求每一列中,最大值与最小值之差。示例如下:
print(df.apply(lambda x: x.max() - x.min()))
输出结果:
col1 9
col2 9
col3 9
dtype: int64
3 操作单一元素
  DataFrame 数据表结构的 applymap() 和 Series 系列结构的 map() 类似,它们都可以接受一个 Python 函数,并返回相应的值。
  示例如下:
df = pd.DataFrame(np.arange(6).reshape((-1,3)),columns=['col1','col2','col3'])
print(df)
#自定义函数lambda函数
print(df['col1'].map(lambda x:x*2))
输出结果:
col1 col2 col3
0 0 1 2
1 3 4 5
0 0
1 6
Name: col1, dtype: int64
下面示例使用了 applymap() 函数,如下所示:
#自定义函数
df = pd.DataFrame(np.arange(6).reshape((-1,3)),columns=['col1','col2','col3'])
print(df.applymap(lambda x:x*2))
print(df.apply(np.mean))
输出结果:
col1 col2 col3
0 0 2 4
1 6 8 10
col1 1.5
col2 2.5
col3 3.5
dtype: float64
Lesson7——Pandas 使用自定义函数的更多相关文章
- pandas DataFrame apply()函数(1)
		
之前已经写过pandas DataFrame applymap()函数 还有pandas数组(pandas Series)-(5)apply方法自定义函数 pandas DataFrame 的 app ...
 - Mysql - 存储过程/自定义函数
		
在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方 ...
 - Entity Framework 6 Recipes 2nd Edition(10-5)译 -> 在存储模型中使用自定义函数
		
10-5. 在存储模型中使用自定义函数 问题 想在模型中使用自定义函数,而不是存储过程. 解决方案 假设我们数据库里有成员(members)和他们已经发送的信息(messages) 关系数据表,如Fi ...
 - mysql 常用自定义函数解析
		
-- /* -- * 用于获取一记录数据,根据传入的分隔字符delim,索引位置pos,返回相对应的value -- * SELECT Json_getKeyValue({"A": ...
 - mysql 自定义函数
		
原文:http://www.cnblogs.com/zhangminghui/p/4113160.html 引言 MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利 ...
 - Sql Server系列:自定义函数
		
用户自定义函数可以像系统函数一样在查询或存储过程中调用,可以接受参数.执行操作并将操作结果以值的形式返回.返回值可以是单个标量或结果集. 1. 标量函数 标量函数返回一个确定类型的标量值,对于多语句的 ...
 - asp.net MVC helper 和自定义函数@functions小结
		
asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...
 - PHP函数之自定义函数
		
像数学中的函数一样,y=f(x)是函数基本的表达形式,x可看做是参数,y可看做是返回值,即函数定义就是一个被命名的.独立的代码段,它执行特定的任务,并可能给调用它的程序返回一个值. 自定义函数 函数的 ...
 - C语言-自定义函数
		
C语言自定义函数 --1-- 自定义函数定义 1.1 无参无返回值函数 1.2 无参有返回值函数 1.3 有参无返回值函数 1.4 有参有返回值函数 --2-- 函数的参数 2.1 形式参数介绍和使用 ...
 
随机推荐
- 1114. Boxes
			
1114. Boxes Time limit: 0.6 secondMemory limit: 64 MB N boxes are lined up in a sequence (1 ≤ N ≤ 20 ...
 - python学习第五天:python基础(string、list、tuple)
			
首先,什么是sequence(序列)操作? 字符串的特性被称为sequence(序列) H o w a r e y o u ? 就好像存储在一个个连续的单元格里面,每个单元格存储一个字符,每个字符就是 ...
 - RabbitMQ,RocketMQ,Kafka 事务性,消息丢失和消息重复发送的处理策略
			
消息队列常见问题处理 分布式事务 什么是分布式事务 常见的分布式事务解决方案 基于 MQ 实现的分布式事务 本地消息表-最终一致性 MQ事务-最终一致性 RocketMQ中如何处理事务 Kafka中如 ...
 - [炼丹术]EfficientDet训练模型学习总结
			
EfficientDet训练模型学习总结 1.Introduction简介 pytorch用SOTA实时重新实现官方EfficientDet,原文链接:https : //arxiv.org/abs/ ...
 - 剖析Defi之Uinswap_1
			
学习UniswapERC20,它是交易对的父合约.UniswapV2ERC20 是流动性代币合约,也称为 LP Token.功能主要实习ERC20代币功能以及对线下签名授权. 1 pragma sol ...
 - vue为什么要设计成异步队列渲染
			
异步队列渲染 上一篇文章是在vue2.0 中通过Object.defineProperty去拦截并监听数据变化的响应式原理,这篇文章将会沿着图谱继续深入探索,在依赖被通知变化了之后,会触发vue当中的 ...
 - docker学习:docker---centos安装
			
查看目标镜像 docker search centos 拉取镜像 docker pull centos 查看镜像 docker images 启动镜像 docker run -itd --privil ...
 - MySQL数据库安装Version5.7.25
			
1.说明 MySQL数据库大版本5.7的安装没有较大变化, 所以MySQL数据库Version5.7.25安装请参考:MySQL数据库安装Version5.7 上面文章中MySQL安装使用Versio ...
 - go语言 装饰器模式
			
package decoratorimport ( "fmt" "reflect")func Decorator(decoPtr, fn interface{} ...
 - spring cloud feign 报错 feign.FeignException$MethodNotAllowed: status 405 reading 解决
			
1.前言 出现报错 feign.FeignException$MethodNotAllowed: status 405 reading XXXXX 需要检查 接口的请求参数是否一致 请求参数是否正确添 ...