对pandas中Series的map函数详解
发布时间:2020-05-23 21:54:44 所属栏目:Python 来源:互联网
导读:Series的map方法可以接受一个函数或含有映射关系的字典型对象。使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。
|
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,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,4,1,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函数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。 您可能感兴趣的文章:
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
