爱的网站,个人主页在线制作,湖州品牌网站建设,只做美食类目产品的网站Series的map函数
Series的map方法可以接受一个函数或含有映射关系的字典型对象。使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。DataFrame中对应的是applymap()函数#xff0c;当然DataFrame还有apply()函数
1.字典映射
例如#xff0c;对数据的某个字段进…Series的map函数
Series的map方法可以接受一个函数或含有映射关系的字典型对象。使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。DataFrame中对应的是applymap()函数当然DataFrame还有apply()函数
1.字典映射
例如对数据的某个字段进行数字编码的时候 字段’diagnosis’中的值均为M或者B
df[diagnosis] df[diagnosis].map({M:1,B:0})map函数也可以搭配lambda函数使用
import pandas as pd
from pandas import Series, DataFramedata 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 pdIn [580]: from pandas import Series, DataFrameIn [581]: index pd.date_range(2017-08-15, periods10)In [582]: ser Series(list(range(10)), indexindex)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: int64In [585]: ser.index.map(lambda x: x.day)
Out[585]: Int64Index([15, 16, 17, 18, 19, 20, 21, 22, 23, 24], dtypeint64)In [586]: ser.index.map(lambda x: x.weekday)
Out[586]: Int64Index([1, 2, 3, 4, 5, 6, 0, 1, 2, 3], dtypeint64)In [587]: ser.map(lambda x: x10)
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: int64In [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