龙空技术网

详解Python中的map、lambda和apply用法

统计GO 59

前言:

而今朋友们对“pythonapply”大概比较注意,小伙伴们都想要了解一些“pythonapply”的相关知识。那么小编在网络上搜集了一些有关“pythonapply””的相关内容,希望大家能喜欢,我们快快来了解一下吧!

Hello大家好,欢迎来到【统计GO】,本公众号内容主要针对数据分析的爱好者,不定期分享一些好用的数据分析工具和机器学习资料,以及一些求职必备技能,帮助大家花更少的时间学更多的知识。

今天为大家推荐的是“详解pandas中的Map、Apply、Groupby函数”。如果本期内容对您有所帮助,记得及时关注。

1.Map

(1)数据集

(2)假设您想要添加一列,指出每种食物来自哪种动物。让我们写下每一种不同的肉类类型到动物的映射:

meat_to_animal = {'bacon': 'pig',     'pulled pork': 'pig','pastrami':'cow',     'corned beef': 'cow','honey ham': 'pig',    'nova lox': 'salmon'}

(3)处理完之后的数据

data['animal'] = lowercased.map(meat_to_animal)
2.Groupby

(1)简单组聚合的模型示意图

(2)数据集

(3)Groupby

grouped = df['data1'].groupby(df['key1']).mean()

Out: key1

a 0.746672

b -0.53758

3.Apply

(1)数据集

(2)lambda函数

f = lambda x: x.max() - x.min()frame.apply(f)

Out:

b 1.802165

d 1.684034

e 2.689627

frame.apply(f, axis='columns')

Out:

Utah 0.998382

Ohio 2.521511

Texas 0.676115

Oregon 2.542656

(3)def f(x),计算每一列最小值和最大值

def f(x):        return pd.Series([x.min(), x.max()],     index=['min', 'max'])frame.apply(f)

Out:

(4)每一列保留两位小数

format = lambda x: '%.2f' % xframe.applymap(format)

Out:

4.总结

1. lambda与def的区别:

1)def创建的方法是有名称的,而lambda没有。

2)lambda会返回一个函数对象,但这个对象不会赋给一个标识符,而def则会把函数对象赋值给一个变量(函数名)。

3)lambda只是一个表达式,而def则是一个语句。

4)lambda表达式”:“后面,只能有一个表达式,def则可以有多个。

5)像if或for或print等语句不能用于lambda中,def可以。

6)lambda一般用来定义简单的函数,而def可以定义复杂的函数。

2. Map函数主要用于自定义分类规则.

Groupby函数主要用于计算组内统计量,特别是在缺失值填充中避免了用总体均值填充的弊端.

Apply函数主要用于将自定义之后的函数,应用到每一列或者特定的某一列中.

标签: #pythonapply