说明:爬取了b站8月综合得分前100的视频,做一个数据小练习
问题1:将播放量和弹幕量的格式改为浮点型数据,需要去掉单位
data["播放量"] = data['播放量'].str.replace('万','').astype(float) data["弹幕量"] = data['弹幕量'].str.replace('万','').astype(float)此时,两个属性的值都是float格式。
问题2:弹幕量属性中,有部分数据的单位不是万,找出这部分数据然后除以10000
data["弹幕量"] = data["弹幕量"].apply(lambda x: x/10000 if x>50 else x)问题3:修改columns名称
data.rename(columns={"播放量":"播放量(万)","弹幕量":"弹幕量(万)"},inplace=True)问题3:各分区数量
fig, axes = plt.subplots(1,1) data_class.plot(kind='bar') x = np.arange(data_class.shape[0]) for x,y in zip(x,data_class.values): plt.text(x,y+0.05, "{:.0f}".format(y),ha="center") plt.ylabel("数量") plt.title('各分区数量')结论:由此图可以看出排在前三的有生活类、动画类和鬼畜类视频,这个结果很bilibili。
问题4:弹幕量与播放量对比
data_class_playnum = data.groupby('分区')[['播放量','弹幕量']].sum() fig, axes = plt.subplots(figsize=(10,5),sharey=False) axes.bar(data_class_playnum.index,data_class_playnum['播放量(万)']) ax2 = axes.twinx() ax2.plot(data_class_playnum.index,data_class_playnum['弹幕量(万)'],color='red') axes.set_title("各分区播放量与弹幕量对比") axes.set_ylabel("播放量(万)") ax2.set_ylabel("弹幕量(万)")结论:生活类视频的播放量和弹幕量都非常高,而动画类和鬼畜类视频的弹幕差不多,知识类和游戏类视频播放量虽然不如前三名,但这两者的弹幕量相较而言比较突出(弹幕播放比)