周一的原创文章,
2021年终盘点 | 用Python分析了上千个表现优异的年度基金,终于发现了赚钱的秘密
可能标题取得太像是恰饭的了,都没有几个人来阅读,所以今天小编就打算稍微中规中矩一些,写一篇技术类的干货文章。
这篇文章小编来讲讲lambda
方法以及它在pandas
模块当中的运用,熟练掌握可以极大地提高数据分析与挖掘的效率
导入模块与读取数据
我们第一步需要导入模块以及数据集
import pandas as pd
df = pd.read_csv("IMDB-Movie-Data.csv")
df.head()
创建新的列
一般我们是通过在现有两列的基础上进行一些简单的数学运算来创建新的一列,例如
df['AvgRating'] = (df['Rating'] + df['Metascore']/10)/2
但是如果要新创建的列是经过相当复杂的计算得来的,那么lambda
方法就很多必要被运用到了,我们先来定义一个函数方法
def custom_rating(genre,rating):
if 'Thriller' in genre:
return min(10,rating+1)
elif 'Comedy' in genre:
return max(0,rating-1)
elif 'Drama' in genre:
return max(5, rating-1)
else:
return rating
我们对于不同类别的电影采用了不同方式的评分方法,例如对于“惊悚片”,评分的方法则是在“原来的评分+1”和10分当中取一个最小的,而对于“喜剧”类别的电影,则是在0分和“原来的评分-1”当中取一个最大的,然后我们通过apply
方法和lambda
方法将这个自定义的函数应用在这个DataFrame
数据集当中
df["CustomRating"] = df.apply(lambda x: custom_rating(x['Genre'], x['Rating']), axis = 1)
我们这里需要说明一下axis
参数的作用,其中axis