前言:
而今朋友们对“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