【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)

一、爬取老番茄B站数据

前几天开发了一个python爬虫脚本,成功爬取了B站李子柒的视频数据,共142个视频,17个字段,含:

视频标题,视频地址,视频上传时间,视频时长,是否合作视频,视频分区,弹幕数,播放量,点赞数,投币量,收藏量,评论数,转发量,实时爬取时间

基于这个Python爬虫程序,我更换了up主的UID,把李子柒的uid换成了老番茄的uid,便成功爬取了老番茄的B站数据。共393个视频,17个字段,字段同上。
这里展示下爬取到的前20个视频数据:

【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)
基于爬取的老番茄B站数据,用python做了以下基础数据分析的开发。

二、python数据分析

1、读取数据源

import pandas as pd
df = pd.read_excel('B站视频数据_老番茄.xlsx', parse_dates=['视频上传时间', '实时爬取时间'])  # 读取excel数据

2、查看数据概况

df.head(3)  # 查看前三行数据
df.shape  # 查看形状,几行几列
df.info()  # 查看列信息
df.describe()  # 数据分析
df['是否合作视频'].value_counts()  # 统计:是否合作视频
df['视频分区'].value_counts()  # 统计:视频分区

3、查看异常值

df2 = df[['视频标题', '视频地址', '弹幕数', '播放量',
          '点赞数', '投币量', '收藏量', '评论数', '转发量', '视频上传时间']]  # 去掉不关心的列
df2.loc[df.评论数 == 0]  # 评论数是0的数据
df2.isnull().any()  # 空值
df2.duplicated().any()  # 重复值

4.1、查看最大值(max函数)

df2.loc[df.播放量 == df['播放量'].max()]  # 播放量最高的视频
df2.loc[df.弹幕数 == df['弹幕数'].max()]  # 弹幕数最高的视频

4.2、查看最小值(min函数)

df2.loc[df.投币量 == df['投币量'].min()]  # 投币量最小的视频
df2.loc[df.收藏量 == df['收藏量'].min()]  # 收藏量最小的视频

5.1、查看TOP3的视频(nlargest函数)

df2.nlargest(n=3, columns='播放量')  # 播放量TOP3的视频
df2.nlargest(n=3, columns='投币量')  # 投币量TOP3的视频

5.2、查看倒数3的视频(nsmallest函数)

df2.nsmallest(n=3, columns='评论数')  # 评论数倒数3的视频
df2.nsmallest(n=3, columns='转发量')  # 转发量倒数3的视频

6、查看相关性

查看spearman相关性(得出结论:收藏量&投币量,相关性最大,0.98)
df2.corr(method='spearman')

【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)

7.1、可视化分析-plot

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文标签  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
可视化效果不好
df2.plot(x='视频上传时间', y=['弹幕数', '播放量', '点赞数', '投币量', '收藏量', '评论数', '转发量'])

【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)

7.2、可视化分析-pyecharts

from pyecharts.charts import Line  # 折线图所导入的包
from pyecharts import options as opts  # 全局设置所导入的包
time_list = df2['视频上传时间'].astype(str).values.tolist()
line = (
    Line()  # 实例化Line
    # 加入X轴数据
    .add_xaxis(time_list)
    # 加入Y轴数据
    .add_yaxis("弹幕数", df2['弹幕数'].values.tolist())
    .add_yaxis("播放量", df2['播放量'].values.tolist())
    .add_yaxis("点赞数", df2['点赞数'].values.tolist())
    .add_yaxis("投币量", df2['投币量'].values.tolist())
    .add_yaxis("收藏量", df2['收藏量'].values.tolist())
    .add_yaxis("评论数", df2['评论数'].values.tolist())
    .add_yaxis("转发量", df2['转发量'].values.tolist())
    .set_global_opts(title_opts=opts.TitleOpts(title="老番茄B站数据分析"),
                     legend_opts=opts.LegendOpts(is_show=True),
                     )
    # 全局设置项
)

【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)

至此,基本数据分析工作完成。

[En]

At this point, the basic data analysis work is completed.

三、同步讲解视频

逐行代码视频讲解:
https://www.zhihu.com/zvideo/1455460990275567616

四、附完整源码

附完整源码:点击这里完整源码

更多案例源码 -> 马哥python说

Original: https://www.cnblogs.com/mashukui/p/16242980.html
Author: 马哥python说
Title: 【Python数据分析案例】python数据分析老番茄B站数据(pandas常用基础数据分析代码)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/499650/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Windows下配置Python(numpy,opencv)的踩雷历史

    原来我还写过这个,贴一下。 C:\Windows\system32>pip list Traceback (most recent call last): File &quo…

    Python 2023年8月26日
    0106
  • #AI 绘图 #GitHub GitHub上这几个项目教你怎么用,让你成为神笔马良

    1.前情提要 前两天在 GitHub Trending 上看到个利用 AI 自动给图片上色的项目(style2paints)火起来了。在 AI 大行其道的时代,工程师们也开始思考如…

    Python 2023年10月29日
    0139
  • Flask框架

    Flask 一 前言 二 快速使用 三 内置配置变量 四 配置文件的写法 五 路由 六 cbv写法 * 6.1 快速使用 6.2 cbv加装饰器 6.3 as_view的执行流程 …

    Python 2023年8月12日
    0105
  • seed()函数

    不管是再深度学习还是在其他工作中,相信大家经常会碰到seed()函数,一定有许多同学搞不清楚其作用,传入的参数数值(即seed(num),num对应的数字)应该是多少。下面一一给大…

    Python 2023年8月29日
    085
  • scrapy框架二

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

    Python 2023年10月4日
    079
  • 基于支持向量机的图像分类(上篇)

    摘要:本文通过图文详细介绍如何利用支持向量机对图像进行分类。这篇文章从什么是图像分类任务开始一步步详细介绍支持向量机原理,以及如何用它解决图像多分类任务。将这部分内容分为上下两篇:…

    Python 2023年10月29日
    0100
  • vue项目的首屏优化策略

    虽然标题是vue项目的首屏优化策略,但是里面绝大部分的方法,对于其他语言写成的单页应用同样适用 首屏进入时,直接加载和首屏相关路由,其他全部路由组件实现懒加载,即打开该路由时再去加…

    Python 2023年9月17日
    076
  • 个人数据保全计划:(1) NAS开箱

    前言 从几年前第一个硬盘故障导致参赛的文件丢失之后,我就开始意识到数据安全的重要性,开始用各种云盘做备份,当时还不是百度云一家独大,我们也都没意识到网盘备份是极其不靠谱的行为,直到…

    Python 2023年10月18日
    079
  • 别被chatGPT戏弄了

    官方的介绍是,这一模型可以与人类进行谈话般的交互,可以回答追问,连续性的问题,承认其回答中的错误,指出人类提问时的不正确前提,拒绝回答不适当的问题。 科学愉快地玩耍了一下 不设限的…

    Python 2023年11月4日
    0101
  • RabbitMQ【2】常用消息属性的简单介绍

    RabbitMQ【2】常用消息属性的简单介绍 (需要详细介绍的可以去看原书《深入RabbitMQ》第三章节内容) 2.1 消息组成 消息由AMQP规范中的三个低层帧类型组成:Bas…

    Python 2023年6月12日
    082
  • HTTP 优缺点

    HTTP 最凸出的优点是「 简单、灵活和易于扩展、应用广泛和跨平台 」。 1. 简单HTTP 基本的报文格式就是 header + body ,头部信息也是 key-value 简…

    Python 2023年10月22日
    087
  • 比 JSON.stringify 快两倍的fast-json-stringify

    前言 相信大家对 JSON.stringify并不陌生,通常在很多场景下都会用到这个API,最常见的就是HTTP请求中的数据传输, 因为HTTP 协议是一个文本协议,传输的格式都是…

    Python 2023年10月13日
    094
  • 四元数Quaternion的基本运算

    在前面一篇文章中我们介绍了欧拉角死锁问题的一些产生背景,还有基于四元数的求解方案。四元数这个概念虽然重要,但是很少会在通识教育课程中涉及到,更多的是一些图形学或者是工程学当中才会进…

    Python 2023年10月21日
    078
  • Pandas_DataFrame查看数据

    查看一列数据 df[‘列名’] import pandas as pd df = pd.read_csv(‘gapminder.tsv’, sep=’\t’…

    Python 2023年8月16日
    096
  • 如何在Linux系统上刷抖音

    自从抖音出了网页版 很多小伙伴,上班刷起来了 今天,写一篇教大家如何使用linux刷抖音 抖音入驻PC端之后,其实就是一个终端的网站页面 看看我们如何在Linux端, 完成搜索、截…

    Python 2023年8月2日
    0105
  • jumpserver的安装

    文章目录 一、jumpserver堡垒机 * 1.jumpserver简介 2.jumpserver功能 3.jumpserver的特点 二、安装jumpserver * 1.安装…

    Python 2023年8月5日
    0107
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球