1. 程式人生 > 實用技巧 >分析抖音大V視訊,視覺化顯示資料,看看大家都喜歡哪些視訊?

分析抖音大V視訊,視覺化顯示資料,看看大家都喜歡哪些視訊?

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

以下文章來源於法納斯特 ,作者小F

前言

最近,小F在知乎上看到一個關於抖音的問題。

裡面提到了,目前我國人均每天刷短視訊110分鐘。

看這資料,看來小F又被平均了。

不過老實說,只要一開啟抖音,小F確實是有一種停不下來的感覺~

所以還是少刷抖音,多看書。要不然時間全流逝了。

本期就給大家用資料分析一下在抖音,什麼型別的視訊最受歡迎。

資料獲取

資料來自於第三方監測,一共是有5000+抖音大V的資料資訊。

主要包含大V們的暱稱、性別、地點、型別、點贊數、粉絲數、視訊數、評論數、分享數、關注數、畢業學校、認證、簡介等資訊。

其中粉絲最多的是「人民日報」,接近1.2億。「央視新聞」也破億了,記得之前破億的時候還上過熱搜~

粉絲最少的博主也有近150w+的粉絲,這5000多位大V累計236.5億粉絲,地球人口的三倍多!

資料視覺化

匯入相關庫,然後讀取資料。

from pyecharts.charts import Pie, Bar, TreeMap, Map, Geo
from wordcloud import WordCloud, ImageColorGenerator
from pyecharts import options as opts
import matplotlib.pyplot as plt
from
PIL import Image import pandas as pd import numpy as np import jieba df = pd.read_csv('douyin.csv', header=0, encoding='utf-8-sig') print(df)

性別分佈情況

整體上看,男女比例差別不大。

除去未知的資料,基本是1:1。

視覺化程式碼如下。

def create_gender(df):
    df = df.copy()
    # 修改數值
    df.loc[df.gender == '0', 'gender'] = '未知'
    df.loc[df.gender 
== '1', 'gender'] = '男性' df.loc[df.gender == '2', 'gender'] = '女性' # 根據性別分組 gender_message = df.groupby(['gender']) # 對分組後的結果進行計數 gender_com = gender_message['gender'].agg(['count']) gender_com.reset_index(inplace=True) # 餅圖資料 attr = gender_com['gender'] v1 = gender_com['count'] # 初始化配置 pie = Pie(init_opts=opts.InitOpts(width="800px", height="400px")) # 新增資料,設定半徑 pie.add("", [list(z) for z in zip(attr, v1)], radius=["40%", "75%"]) # 設定全域性配置項,標題、圖例、工具箱(下載圖片) pie.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V性別分佈情況", pos_left="center", pos_top="top"), legend_opts=opts.LegendOpts(orient="vertical", pos_left="left"), toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}})) # 設定系列配置項,標籤樣式 pie.set_series_opts(label_opts=opts.LabelOpts(is_show=True, formatter="{b}:{d}%")) pie.render("抖音大V性別分佈情況.html")

點贊數

點贊數TOP10,除了「小團團」和「毒舌」,其他都是新聞媒體類的大V。

今年因為疫情,有很多新聞在抖音上都是第一時間傳播,所以影響力比較大,點贊也就比較多了。

記得「四川觀察」還被評論區調侃為四處觀察,意思是釋出訊息非常快。

好奇為什麼會有100萬點贊數的大V,小F的抖音號都有20w+的贊。

最後發現是第三方監測收錄的問題,下次可以直接剔除這批資料。

點贊破億的有500多個大V,1000萬到5000萬點贊數的大V人數最多。

視覺化程式碼如下。

def create_likes(df):
    # 排序,降序
    df = df.sort_values('likes', ascending=False)
    # 獲取TOP10的資料
    attr = df['name'][0:10]
    v1 = [float('%.1f' % (float(i) / 100000000)) for i in df['likes'][0:10]]

    # 初始化配置
    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    # x軸資料
    bar.add_xaxis(list(reversed(attr.tolist())))
    # y軸資料
    bar.add_yaxis("", list(reversed(v1)))
    # 設定全域性配置項,標題、工具箱(下載圖片)、y軸分割線
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V點贊數TOP10(億)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    # 設定系列配置項,標籤樣式
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black"))
    bar.reversal_axis()
    bar.render("抖音大V點贊數TOP10(億).html")


def create_cut_likes(df):
    # 將資料分段
    Bins = [0, 1000000, 5000000, 10000000, 25000000, 50000000, 100000000, 5000000000]
    Labels = ['0-100', '100-500', '500-1000', '1000-2500', '2500-5000', '5000-10000', '10000以上']
    len_stage = pd.cut(df['likes'], bins=Bins, labels=Labels).value_counts().sort_index()
    # 獲取資料
    attr = len_stage.index.tolist()
    v1 = len_stage.values.tolist()

    # 生成柱狀圖
    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(attr)
    bar.add_yaxis("", v1)
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V點贊數分佈情況(萬)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="top", color="black"))
    bar.render("抖音大V點贊數分佈情況(萬).html")

粉絲數

「人民日報」和「央視新聞」粉絲都破億了。

和去年的抖音資料一對比,「熱巴」還少了幾十萬的粉絲,陳赫倒是漲了不少粉絲。

今年直播帶貨火熱,李佳琦排入前十,也不足為奇,畢竟帶貨一哥。

再來看一下大V們粉絲數的分佈情況。

5000萬以上56個,妥妥的大佬。

200w~500w的人數最多,好多一時爆火的博主,一段時間後也基本不怎麼漲粉了。

可能都停留到了這裡,比如小F以前刷過的「三支花」,想不明白這都能火...

這裡的視覺化程式碼和上面差不多,就不放出來了。

評論數TOP10

抖音視訊的評論區也是比較有意思的地方。

比如刷劇催更的,「趕緊去更新,都過了十幾分鍾了,生產隊的驢都不敢休息這麼久」。

還有五隻瘋狂搖頭的貓,也佔領了評論區一段時間。

只能說,太魔性了~

總的來說,媒體類的視訊評論較多。

分享數TOP10

抖音的分享是視訊對外傳播的一個方法,可以讓更多的人看到視訊。

從資料上看,大家還是比較喜歡分享新聞類以及美食類的視訊。

可能過年疫情,居家一個月的時間,除了葛優躺看新聞,就是吃吃吃。

每個人,也就都有了一個成為大廚的夢想。

各型別點贊數/粉絲數彙總分佈圖

記得曾經一位大佬說過,抖音這個產品是消磨你時間的(Kill Time),而不是節約時間(Save Time),技術稍微深一點的視訊基本上生存不下去。

由上面的矩形樹圖可以知道,大家都喜歡「美女」型別的視訊,畢竟誰不喜歡漂亮妹子呢~

比如說深情看銅人的妹子、高考送滿天星的妹子,刀小刀等等,妹子爆火的視訊太多了...

另外「搞笑」、「遊戲」、「劇情」類的視訊也比較吸引人,妥妥的Kill Time。

視覺化程式碼如下。

def create_type_likes(df):
    # 分組求和
    likes_type_message = df.groupby(['category'])
    likes_type_com = likes_type_message['likes'].agg(['sum'])
    likes_type_com.reset_index(inplace=True)
    # 處理資料
    dom = []
    for name, num in zip(likes_type_com['category'], likes_type_com['sum']):
        data = {}
        data['name'] = name
        data['value'] = num
        dom.append(data)
    print(dom)

    # 初始化配置
    treemap = TreeMap(init_opts=opts.InitOpts(width="800px", height="400px"))
    # 新增資料
    treemap.add('', dom)
    # 設定全域性配置項,標題、工具箱(下載圖片)
    treemap.set_global_opts(title_opts=opts.TitleOpts(title="各型別抖音大V點贊數彙總圖", pos_left="center", pos_top="5"),
                            toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                            legend_opts=opts.LegendOpts(is_show=False))

    treemap.render("各型別抖音大V點贊數彙總圖.html")

平均視訊點贊數/粉絲數TOP10

「李現」作為2019年的頂級流量,登頂第一,沒啥問題。

其他的博主小F一個也沒關注過。

去搜索了一下,發現大部分賬號只有一兩個視訊。

看了評論區,發現原來號被賣掉了,有可能是大V和公司分手了,畢竟現在好多做網紅的公司,不火就下一位。

另一種就是個人轉讓賬號,變現賺錢跑路咯。

視覺化程式碼如下。

def create_avg_likes(df):
    # 篩選
    df = df[df['videos'] > 0]
    # 計算單個視訊平均點贊數
    df.eval('result = likes/(videos*10000)', inplace=True)
    df['result'] = df['result'].round(decimals=1)
    df = df.sort_values('result', ascending=False)

    # 取TOP10
    attr = df['name'][0:10]
    v1 = ['%.1f' % (float(i)) for i in  df['result'][0:10]]

    # 初始化配置
    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    # 新增資料
    bar.add_xaxis(list(reversed(attr.tolist())))
    bar.add_yaxis("", list(reversed(v1)))
    # 設定全域性配置項,標題、工具箱(下載圖片)、y軸分割線
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V平均視訊點贊數TOP10(萬)", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    # 設定系列配置項
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="right", color="black"))
    # 翻轉xy軸
    bar.reversal_axis()
    bar.render("抖音大V平均視訊點贊數TOP10(萬).html")

抖音大V分佈情況

省份看完了,來看一下城市TOP10吧。

北京遙遙領先,大V的聚集地。

杭州盛產網紅的城市,位列第二。

視覺化程式碼如下。

def create_city(df):
    df1 = df[df["country"] == "中國"]
    df1 = df1.copy()
    df1["city"] = df1["city"].str.replace("", "")

    df_num = df1.groupby("city")["city"].agg(count="count").reset_index().sort_values(by="count", ascending=False)
    df_city = df_num[:10]["city"].values.tolist()
    df_count = df_num[:10]["count"].values.tolist()

    bar = Bar(init_opts=opts.InitOpts(width="800px", height="400px"))
    bar.add_xaxis(df_city)
    bar.add_yaxis("", df_count)
    bar.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V城市分佈TOP10", pos_left="center", pos_top="18"),
                        toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}),
                        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
    bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="top", color="black"))
    bar.render("抖音大V城市分佈TOP10.html")

看完國內,就應該是國外了。

抖音上有著不少漢語講得非常好的「歪果仁」。

美國居第一,不少在美國的華人會分享他們在美國生活的一些事情。

國內也有人感興趣這方面的東西,看看國外的月亮究竟圓不圓。

哈哈說笑了,其實是讓我們瞭解國外的生活。

抖音大V畢業學校TOP10

北影、中傳、浙傳、中戲、上戲、央美,妥妥的演藝圈大佬。

通過程式碼查詢一下大V們的認證情況。

df1 = df[(df["custom_verify"] != "") & (df["custom_verify"] != "未知")]
df1 = df1.copy()
df_num = df1.groupby("custom_verify")["custom_verify"].agg(count="count").reset_index().sort_values(by="count", ascending=False)
print(df_num[:20])

得到結果如下。

都是需要表演表達天賦的~

抖音大V簡介詞雲

可以看到大部分大V都留下了商務合作的資訊,利好內容創作者,如此才能雙贏。

據統計,在抖音2200萬以上創作者實現了超過417億元的收入。

從創作到創益,這句話抖音講的很好。

視覺化程式碼如下。

def create_wordcloud(df, picture):
    words = pd.read_csv('chineseStopWords.txt', encoding='gbk', sep='\t', names=['stopword'])
    # 分詞
    text = ''
    df1 = df[df["signature"] != ""]
    df1 = df1.copy()
    for line in df1['signature']:
        text += ' '.join(jieba.cut(str(line).replace(" ", ""), cut_all=False))
    # 停用詞
    stopwords = set('')
    stopwords.update(words['stopword'])
    backgroud_Image = plt.imread('douyin.png')
    # 使用抖音背景色
    alice_coloring = np.array(Image.open(r"douyin.png"))
    image_colors = ImageColorGenerator(alice_coloring)
    wc = WordCloud(
        background_color='white',
        mask=backgroud_Image,
        font_path='方正蘭亭刊黑.TTF',
        max_words=2000,
        max_font_size=70,
        min_font_size=1,
        prefer_horizontal=1,
        color_func=image_colors,
        random_state=50,
        stopwords=stopwords,
        margin=5
    )
    wc.generate_from_text(text)
    # 看看詞頻高的有哪些
    process_word = WordCloud.process_text(wc, text)
    sort = sorted(process_word.items(), key=lambda e: e[1], reverse=True)
    print(sort[:50])
    plt.imshow(wc)
    plt.axis('off')
    wc.to_file(picture)
    print('生成詞雲成功!')