数据分析(十一)之lambda函数应用三元判断

电视剧网播量数据分析

解释一下Python中的三元运算

[on true] if [expression] else [on false]
如果表达式为True,就执行[on true]中的语句。否则,就执行[on false]中的语句
a,b=2,3
min=a if a<b else b
min

部分数据结构图
在这里插入图片描述

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
data=pd.read_excel('网播量.xlsx')


对数值进行空值处理

data1=data.dropna(axis=0)

将采集日期(-替换成/),点赞(去除逗号),差评(去除逗号),播放量(统一换算值,仅保留数字)进行数据预处理。

data1['采集日期']=data1['采集日期'].apply(lambda x:x.replace('/','-'))
data1['点赞']=data1['点赞'].apply(lambda x:str(x).replace(',',''))
data1['播放量']=data1['播放量'].apply(lambda x:float(x.replace('亿',''))*100000000 if '亿' in x else float(x.replace(',','').replace('万',''))*10000) 
                                                                                                    #lambda中三元判断,以万和以亿分开判断换算                                                                                                     
data1
统计出播放量Top50的电影中,平均点赞量和平均差评量
4
data2=data1.sort_values('播放量',ascending=False)[:50]  #换算后的数据进行排序
data2['差评']=data2['差评'].apply(lambda x:int(str(x).replace(',','')))  # 替换后的数字转成Int类型
data3=data2['差评'].mean()
print(data3)
data2['点赞']=data2['点赞'].apply(lambda x:int(str(x).replace(',','')))
data4=data2['点赞'].mean()
print(data4)

1009213.76
5413927.08

分析出国庆黄金周里播放的电视剧播放量,并绘出期间电视剧播放量前十的柱状图

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
data=pd.read_excel('网播量.xlsx')
data1=data.dropna(axis=0)
data1['播放量']=data1['播放量'].apply(lambda x:float(x.replace('亿',''))*100000000 if '亿' in x else float(x.replace(',','').replace('万',''))*10000)                                                                                                          
data2=data1[data1['采集日期'].apply(lambda x:pd.to_datetime(x).month)==10]  #先取出十月的数据
data2['采集日期']=data2['采集日期'].apply(lambda x:pd.to_datetime(x).day) #然后对取出的数据进行重新定义采集日期,定义为天
data3=data2[data2['采集日期'].isin(np.arange(1,8).tolist())] #取出天为1到7日的数据
data4=data3.groupby('剧名').sum() #对得到的数据进行分组求和
data5=data4.sort_values('播放量',ascending=False) #倒序排列以播放量
X=data5.index[:10] #定义X
Y=data5['播放量'].values[:10] #定义Y
plt.bar(X,Y) #柱状图
plt.xticks(np.arange(10),X,rotation=60) #设置X刻度线
plt.show()

在这里插入图片描述
按月份统计平均播放量和平均点赞数

import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
data=pd.read_excel('网播量.xlsx')
data1=data.dropna(axis=0)
data1['点赞']=data1['点赞'].apply(lambda x:int(str(x).replace(',','')))
data1['播放量']=data1['播放量'].apply(lambda x:float(x.replace('亿',''))*100000000 if '亿' in x else float(x.replace(',','').replace('万',''))*10000)                                                                                                          
data1['采集日期']=data1['采集日期'].apply(lambda x:pd.to_datetime(x).month)  #取月重新赋值给采集日期
data2=data1.groupby('采集日期').mean() #以采集日期分组求平均
data2

采集日期                播放量                      点赞
9                    2.369891e+08              226373.443619
10                  2.514792e+08              245293.625600

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值