对pandas中Series的map函数详解


Posted in Python onJuly 25, 2018

Series的map方法可以接受一个函数或含有映射关系的字典型对象。

使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。

(DataFrame中对应的是applymap()函数,当然DataFrame还有apply()函数)

1、字典映射

import pandas as pd
from pandas import Series, DataFrame

data = DataFrame({'food':['bacon','pulled pork','bacon','Pastrami',
   'corned beef','Bacon','pastrami','honey ham','nova lox'],
     'ounces':[4,3,12,6,7.5,8,3,5,6]})
meat_to_animal = {
 'bacon':'pig',
 'pulled pork':'pig',
 'pastrami':'cow',
 'corned beef':'cow',
 'honey ham':'pig',
 'nova lox':'salmon' } 

data['animal'] = data['food'].map(str.lower).map(meat_to_animal) 
data 

data['food'].map(lambda x: meat_to_animal[x.lower()])

2、应用函数

In [579]: import pandas as pd

In [580]: from pandas import Series, DataFrame

In [581]: index = pd.date_range('2017-08-15', periods=10)

In [582]: ser = Series(list(range(10)), index=index)

In [583]: ser
Out[583]: 
2017-08-15 0
2017-08-16 1
2017-08-17 2
2017-08-18 3
2017-08-19 4
2017-08-20 5
2017-08-21 6
2017-08-22 7
2017-08-23 8
2017-08-24 9
Freq: D, dtype: int64


In [585]: ser.index.map(lambda x: x.day)
Out[585]: Int64Index([15, 16, 17, 18, 19, 20, 21, 22, 23, 24], dtype='int64')

In [586]: ser.index.map(lambda x: x.weekday)
Out[586]: Int64Index([1, 2, 3, 4, 5, 6, 0, 1, 2, 3], dtype='int64')

In [587]: ser.map(lambda x: x+10)
Out[587]: 
2017-08-15 10
2017-08-16 11
2017-08-17 12
2017-08-18 13
2017-08-19 14
2017-08-20 15
2017-08-21 16
2017-08-22 17
2017-08-23 18
2017-08-24 19
Freq: D, dtype: int64

In [588]: def f(x):
  ...:  if x < 5:
  ...:   return True
  ...:  else:
  ...:   return False
  ...:  

In [589]: ser.map(f)
Out[589]: 
2017-08-15  True
2017-08-16  True
2017-08-17  True
2017-08-18  True
2017-08-19  True
2017-08-20 False
2017-08-21 False
2017-08-22 False
2017-08-23 False
2017-08-24 False
Freq: D, dtype: bool

以上这篇对pandas中Series的map函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python编写暴力破解FTP密码小工具
Nov 19 Python
python开发之函数定义实例分析
Nov 12 Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
import的本质解析
Oct 30 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
利用Python检测URL状态
Jul 31 Python
Django中的cookie和session
Aug 27 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
在Python中等距取出一个数组其中n个数的实现方式
Nov 27 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 Python
用python发送微信消息
Dec 21 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 #Python
Django实现支付宝付款和微信支付的示例代码
Jul 25 #Python
Python走楼梯问题解决方法示例
Jul 25 #Python
python 批量修改/替换数据的实例
Jul 25 #Python
django 实现电子支付功能的示例代码
Jul 25 #Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 #Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 #Python
You might like
PHP中的extract的作用分析
2008/04/09 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
JavaScript中的类继承
2010/11/25 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
Python运算符重载详解及实例代码
2017/03/07 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
竞选班长演讲稿
2013/12/30 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
学生请假条
2014/04/11 职场文书
交通事故协议书
2014/04/15 职场文书
交通工程专业推荐信
2014/09/06 职场文书
基层党支部整改方案
2014/10/25 职场文书
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers