对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系列之新版本导入httplib模块报ImportError解决方案
May 23 Python
浅析Python中的多条件排序实现
Jun 07 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python格式化输出%s和%d
May 07 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
Python之时间和日期使用小结
Feb 14 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
pytorch 自定义数据集加载方法
Aug 18 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
为什么黑客都用python(123个黑客必备的Python工具)
Jan 31 Python
Python定义一个Actor任务
Jul 29 Python
用Python制作音乐海报
Jan 26 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
PHP5 的对象赋值机制介绍
2011/08/02 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
Python使用Scrapy爬取妹子图
2015/05/28 Python
python导入坐标点的具体操作
2019/05/10 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
详解如何修改python中字典的键和值
2020/09/29 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
欧舒丹澳洲版:L’OCCITANE
2017/07/17 全球购物
应届生学校辅导员求职信
2013/11/07 职场文书
优秀部门获奖感言
2014/02/14 职场文书
学校招生宣传广告词
2014/03/19 职场文书
审计专业自荐信范文
2014/04/21 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技