Python告訴你:李子柒的視頻都在拍些什麼?

前言

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。

作者:CDA數據分析師

PS:如有需要Python學習資料的小夥伴可以加點擊下方鏈接自行獲取http://t.cn/A6Zvjdun

“李家有女,人稱子柒。”如果說到當下最火的網紅,想必很多人都會想到李子柒。

日出而作,日落而息,看似平淡無奇的日子,李子柒卻總能過成一首詩、一幅畫。

三月桃花熟了,採來釀桃花酒。四月枇杷成熟,釀枇杷酒…隨着不同時令季節,做出不同的美食,看過李子柒視頻的人,無一不對那視頻裏的古風田園生活嚮往憧憬着,同時也帶給了無數人治癒的力量。

目前在B站上,李子柒共有579萬的粉絲。入駐到現在僅僅發佈了共125條視頻,但隨便翻翻視頻列表,幾乎每個視頻都是爆款。
在這裏插入圖片描述

教你用Python分析

李子柒的視頻都在拍些什麼?
下面讓我們看到關鍵的分析步驟:

我們Python獲取了B站上李子柒發佈的125個視頻相關信息,進行了以下分析,分析流程如下:

  • 數據讀入
  • 數據清洗
  • 數據可視化
  • 數據讀入

首先讀入分析所用的數據集,本數據集一共包含125個樣本,11個字段,字段含義爲:視頻標題、一級分類、二級分類、發佈時間、最高全站排名、總播放數、歷史累計彈幕、點贊、投幣、收藏和分享數。

數據預覽如下:

# 導入包
import numpy as np 
import pandas as pd 
import re 

# 讀入數據
df = pd.read_excel('./data/李子柒視頻數據.xlsx')
df.head() 

在這裏插入圖片描述
數據清洗

此部分我們初步對以下信息進行簡單的處理,其中包含:

  • title:提取主題和介紹
  • top_rank:提取數值
  • view_num:提取數值
  • dm_num: 提取數值
  • dianzan: 計算數值
  • toubi: 計算數值
  • shoucang:計算數值
  • zhuanfa:計算數值
# 定義轉換函數
def transform_num(x):
    str1 = str(x)
    if '萬' in str1:
        return float(str1.strip('萬'))*10000
    else:
        return float(str1)  

# 提取數據
df['title_1'] = df.title.str.extract('【(.*?)】.*')
df['title_2'] = df.title.str.split('】').str[-1]
df['top_rank'] = df.top_rank.str.extract('最高全站日排行(\d+)名')
df['view_num'] = df.view_num.str.extract('(\d+)')
df['dm_num'] = df.dm_num.str.extract('(\d+)')
df['dianzan'] = df.dianzan.apply(lambda x: transform_num(x))  
df['toubi'] = df.toubi.apply(lambda x: transform_num(x))  
df['shoucang'] = df.shoucang.apply(lambda x: transform_num(x))  
df['zhuanfa'] = df.zhuanfa.apply(lambda x: transform_num(x))  

# 轉換類型
df['view_num'] = df.view_num.astype('int')
df['dm_num'] = df.dm_num.astype('int')
df['publish_time'] = pd.to_datetime(df['publish_time'])

經過處理之後的數據如下所示:

df.head(2) 

在這裏插入圖片描述
數據可視化

此處我們將進行以下部分的可視化分析,首先導入所需包,其中pyecharts用於繪製動態可視化圖形,stylecloud包用於繪製詞雲圖。關鍵部分代碼如下:

# 導出所需包
from pyecharts.charts import Pie, Line, Tab, Map, Bar, WordCloud, Page
from pyecharts import options as opts 
from pyecharts.globals import SymbolType
import stylecloud

視頻各年發佈數量

# 發佈數量
pub_year = df.publish_time.dt.year.value_counts().sort_index()

# 條形圖
bar0 = Bar(init_opts=opts.InitOpts(width='1350px', height='750px'))
bar0.add_xaxis(pub_year.index.tolist())
bar0.add_yaxis('', pub_year.values.tolist())
bar0.set_global_opts(title_opts=opts.TitleOpts(title='B站李子柒視頻各年發佈數量'), 
                     visualmap_opts=opts.VisualMapOpts(max_=50),
                    )
bar0.render() 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章