(最全、最新、直接用)python里的lambda、map和apply用法

第一次学是2019年的时候,但是不经常用的话,忘的也快。再次复习一下,共勉,加油,祝你好运!!!

本次操作为:jupyter notebook环境

一、lambda,map

lambda:
1.只是一个表达式
2.会返回一个函数对象
3.像if或for或print等语句不能用于lambda中
4.lambda一般用来定义简单的函数

lambda()单个参数的:

#单个参数的:
def g(x):
    g = lambda x : x ** 2
    return x

print(g(3))

(最全、最新、直接用)python里的lambda、map和apply用法_第1张图片

lambda()多个参数的:

#多个参数的:
g = (lambda x,y,z:(x+y)**z)
print( g(1,2,2))

在这里插入图片描述
map()函数的格式是:
map(function,iterable,…)
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
把函数依次作用在list中的每一个元素上,得到一个新的list并返回。

注意,map不改变原list,而是返回一个新list。

map()和lambda()0到9的平方

#0到9的平方
a= map( lambda x: x*x, [y for y in range(10)] )
print(a)
print(list(a))

(最全、最新、直接用)python里的lambda、map和apply用法_第2张图片

map()列表对应平方

# 列表对应平方
def square(x):
    return x**2

print(square(3))
list(map(square,[1,2,3,4,5]))

(最全、最新、直接用)python里的lambda、map和apply用法_第3张图片

map()和lambda()列表各加1

#列表各加1
a = map(lambda x : x + 1, [1, 2, 3])
print(list(a))

(最全、最新、直接用)python里的lambda、map和apply用法_第4张图片
用for循环相当于:
(最全、最新、直接用)python里的lambda、map和apply用法_第5张图片

map()和lambda()各列对应相加

#各列对应相加
list(map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10]))

在这里插入图片描述

map()类型转换:元组转换为list

list(map(int,(1,2,3)))

在这里插入图片描述

map()类型转换:字符串转换为list:

list(map(int,'1234'))

在这里插入图片描述

map()提取字典中的key,并将结果放在一个list中

list(map(int,{1:2,2:3,3:4}))

在这里插入图片描述

二、apply

Python中apply函数的格式为:apply(func,*args,**kwargs)
用途:当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数,并将元组或者字典中的参数按照顺序传递给参数。

DataFrame中apply的用法:


#函数应用和映射
import numpy as np
import pandas as pd
df=pd.DataFrame(np.random.randn(4,3),columns=list('abc'),index=['h','i','j','k'])
print(df)

(最全、最新、直接用)python里的lambda、map和apply用法_第6张图片

apply函数默认的是axis为 axis=0,会以列为单位,d公式分别对列应用函数运算
参数axis只有0或者1(0代表取的是列数运算,1取的是行数运算)

d=lambda x:x.max()-x.min()
#默认情况下会以列为单位,d公式分别对列应用函数,参数axis只有0或者1(0代表取的是列数运算,1取的是行数运算
a1=df.apply(d)
print('-'*100)
print(a1)
a2=df.apply(d,axis=1)
print('-'*100)
print(a2)

(最全、最新、直接用)python里的lambda、map和apply用法_第7张图片

#除标量外,传递给apply的函数还可以返回由多个值组成的Series
def f(x):
    return pd.Series([x.min(),x.max()],index=['min','max'])
a3=df.apply(d)
#从运行的结果可以看出,按列调用的顺序,调用函数运行的结果在右边依次追加
print(a3)

(最全、最新、直接用)python里的lambda、map和apply用法_第8张图片

#元素级的python函数,将函数应用到每一个元素
#将DataFrame中的各个浮点值保留两位小数
d=lambda x: '%.2f'%x
a3=df.applymap(d)
print(a3)

(最全、最新、直接用)python里的lambda、map和apply用法_第9张图片

#注意,之所以这里用map,是因为Series有一个元素级函数的map方法。而dataframe只有applymap。
t4=df['e'].map(f)
print(t4)

(最全、最新、直接用)python里的lambda、map和apply用法_第10张图片
觉得内容可以的,回来点个赞,收藏一下呗,写文章不易,且行且珍惜。

欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!

你可能感兴趣的:(python,#,python数据处理,python,函数式编程)