美文网首页
python ——简单小函数apply、map、filter

python ——简单小函数apply、map、filter

作者: Colleen_oh | 来源:发表于2020-04-27 13:53 被阅读0次

重点

下面主要是讲了python中DataFrame的四个小函数的用法。分别是filter、apply、map三个函数。学会这三个函数可以让我们减轻很多试用DataFrame的工作量。

filter

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
语法如下:

filter(function, iterable)

function -- 函数
iterable -- 一个或多个序列

上例子:

>>> def is_odd(n):
...     return n % 2 == 1
 
>>> tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> newlist = list(tmplist)
>>> print(newlist)
[1, 3, 5, 7, 9]

上面例子是过滤出无法整除2的数。找单数。

apply

apply() 函数用于当函数参数已经存在于一个元组或字典中时,间接地调用函数。

apply(func [, args [, kwargs ]]) 

args是一个包含将要提供给函数的按位置传递的参数的元组。如果省略了args,任何参数都不会被传递,
kwargs是一个包含关键字参数的字典。

上例子:

>>> def say(a, b):
...     print a, b
 
>>> apply(say,("hello", "张三python"))
hello,张三python

map

map() 会根据提供的函数对指定序列做映射。
语法如下:

map(function, iterable, ...)

function -- 函数
iterable -- 一个或多个序列

上例子:

>>> def square(x) :         # 计算平方数
...     return x ** 2
>>> list(map(square, [1,2,3,4,5]))   # 使用 list() 转换为列表
[1, 4, 9, 16, 25]

如果不加list会返回迭代器,为了方便展示,就加了list。

lambda

lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

表达式如下:

lambda arg :<表达式>

lambda后面直接跟着你要改变的参数,然后“:”后面就是跟着你要该参数变成的样子。

使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。适合用在比较简单的函数并且只用一两次的情况下。

当你想对DataFrame中一列进行统一操作时,可以参考lambda函数。看看下面的例子

>>> print(df['rating'])
0        5
1        3
2        5
3        5
4        3
        ..
19995    4
19996    4
19997    3
19998    3
19999    5
Name: rating, Length: 20000, dtype: int64
>>> print(df['rating'].map(lambda x: -1.0 if x >= 4 else 1.0))
0       -1.0
1        1.0
2       -1.0
3       -1.0
4        1.0
        ... 
19995   -1.0
19996   -1.0
19997    1.0
19998    1.0
19999   -1.0
Name: rating, Length: 20000, dtype: float64

主要就是下面的代码:

df['rating'].map(lambda x: -1.0 if x >= 4 else 1.0)

这句代码的意思就是让df['rating']里面的数字,如果大于等于4,则改为-1,否则就是1
再回忆一下官方对map()的解释:map() 会根据提供的函数对指定序列做映射。
重点关注!!!映射映射!!!
就说我们这个例子。如果是4、5就映射为-1,其他都映射为1.

参考:https://www.runoob.com/python/python-func-map.html
https://www.runoob.com/python3/python3-func-filter.html
https://www.jb51.net/article/53044.htm

相关文章

网友评论

      本文标题:python ——简单小函数apply、map、filter

      本文链接:https://www.haomeiwen.com/subject/amlywhtx.html