pandas的series的map函数,series数据如何按图索骥?
发布于 作者:苏南大叔 来源:程序如此灵动~

pandas
是跨语言的科学计算类的库,在python
和R
中都存在。那么,在苏南大叔的后续文章中,对于介绍pandas
的函数的文章,都不会特别强调python
,但是很有可能会使用python
做范例语言。本文,讲述的是series
的map
函数,这个函数究竟是如何使用的呢?

大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码的故事,欢迎关注。本文将要描述pandas
里面的特殊数据结构series
的map()
功能。这是个非常特殊的函数,功能居然很分裂。(苏南大叔表示挺意外的)。测试环境:win10
,python@3.6.8
,pandas@1.1.5
。
官方说明
这里是pandas
的官方说明链接,大家以这个为准。

下面就结合官方的例子,说说苏南大叔的理解。
姿势一:按图索骥
苏南大叔的理解下,正常情况下,A.map(B)
就是一个按图索骥功能。
传入一个dict
字典对象B
,里面定义了A
中的成员对应于谁,如果A
的成员在B
中没有定义,就返回NaN
。返回新的Series
就是NaN
和对应后的成员组合。范例代码如下:
输出:
特殊情况就是:字典B
也可以定义A
中的NaN
对应于谁。代码如下:
输出:
这个例子中,na_action='ignore'
没有啥用,加上也没有啥反应。
姿势二:简单应用函数
下面的例子中,就是对series
简单应用个转小写字母的功能。
输出:
这个例子中,na_action='ignore'
有重要作用,不加的话就会因为NaN
而报错。
姿势三:简单应用自定义函数
下面的例子中,就是对series
简单应用的是个自定义功能。
输出:
这里的输出值中的I like nan
显然有问题,需要增加na_action='ignore'
控制输出。
输出值是:
姿势四:lambda表达式传参应用
下面的例子中,使用了拉姆达表达式:
报错:
需要增加参数na_action='ignore'
控制输出。
输出:
课后题
看看下面的这段菜谱配料表的代码输出是啥?
结果评论可见,如下所示:
参考文献
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html
- https://newsn.net/say/python-pandas.html
总结
在苏南大叔看来,这个pandas
里面一切函数及概念,都是很奇怪的。然而,这个pandas
确是在科学计算(机器学习)领域,非常频繁使用的类库。如果您也对这个pandas
也很迷惑的话,这里是苏南大叔的理解:dataframe
就类似excel
里面的一张表,series
就是一张表中的一列。也许会帮助你对pandas
的系列操作进行理解。


