对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正则表达式实现截取成对括号的方法
Jan 06 Python
利用python实现命令行有道词典的方法示例
Jan 31 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
基于Python实现的微信好友数据分析
Feb 26 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
python psutil模块使用方法解析
Aug 01 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
.img/.hdr格式转.nii格式的操作
Jul 01 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
python 获取谷歌浏览器保存的密码
Jan 06 Python
Python实现一个论文下载器的过程
Jan 18 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 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 session和cookie使用说明
2010/04/07 PHP
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
php错误级别的设置方法
2013/06/17 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
javascript 树形导航菜单实例代码
2013/08/13 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
Python与shell的3种交互方式介绍
2015/04/11 Python
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
python表格存取的方法
2018/03/07 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
python SVD压缩图像的实现代码
2019/11/05 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
python实现无边框进度条的实例代码
2020/12/30 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
仓管员岗位职责范文
2013/11/08 职场文书
情人节活动策划方案
2014/02/27 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
个人安全生产承诺书
2014/05/22 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
学校开除通知书
2015/04/25 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS