对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设计模式之代理模式实例
Apr 26 Python
你应该知道的python列表去重方法
Jan 17 Python
Python网络编程之TCP套接字简单用法示例
Apr 09 Python
python指定写入文件时的编码格式方法
Jun 07 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
用Python逐行分析文件方法
Jan 28 Python
Python3.5内置模块之random模块用法实例分析
Apr 26 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
利用python Selenium实现自动登陆京东签到领金币功能
Oct 31 Python
python列表推导式操作解析
Nov 26 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
Apr 07 Python
Python中npy和mat文件的保存与读取
Apr 24 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
php 异常处理实现代码
2009/03/10 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
最基础的Python的socket编程入门教程
2015/04/23 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
Python如何实现强制数据类型转换
2019/11/22 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
党员教师四风问题对照检查材料
2014/09/26 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
安装工程师岗位职责
2015/02/13 职场文书
信用卡工作证明范本
2015/06/19 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技