【探索向】之——弹幕内容分析

该文使用Python的pandas库对多份Excel数据进行整合和处理,分析了弹幕创建的时间分布,包括按月份和星期的统计,同时展示了用户弹幕数量、用户等级分布以及视频内容在不同时间点的弹幕活跃度。通过对不同视频的弹幕数据挖掘,揭示了用户观看行为模式。
摘要由CSDN通过智能技术生成

数据处理

import pandas as pd

user_level = pd.read_excel('user_level.xlsx')

import os

excel_list = []
for item in os.listdir('./'):
    if 'xlsx' in item and 'user_level' not in item:
        excel_list.append(item)
excel_list

danmu = pd.DataFrame()
for item in excel_list:
    excel = pd.read_excel(item, converters={'uid': str, 'id': str})
    excel['视频标题'] = item
    danmu = pd.concat([danmu, excel],axis=0)
danmu

时间

事件处理

from datetime import datetime

#将时间具体化
danmu['弹幕创建时间'] = danmu['ctime'].map(datetime.fromtimestamp)

danmu['年'] = danmu['弹幕创建时间'].map(lambda x: x.year)

danmu['月份'] = danmu['弹幕创建时间'].map(lambda x: x.month)
danmu['星期'] = danmu['弹幕创建时间'].map(datetime.isoweekday)
danmu['小时'] = danmu['弹幕创建时间'].map(lambda x: x.hour)
danmu

时间分析

#正常的显示中文
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']

月份

danmu_year = danmu[danmu['年']==2022]
danmu_year

danmu_year.groupby('月份')[['id']].count().plot()

#nuique只会算一次不会算重复的值
danmu_year.groupby('月份')[['uid']].nunique().plot()

星期

danmu_year.groupby('星期')[['id']].count().plot()

danmu_year.groupby('星期')[['uid']].nunique().plot()

import pygwalker as pyg
pyg.walk(danmu_year)

用户画像

danmu

用户处理

danmu['用户弹幕数'] = danmu.groupby('uid')['id'].transform('count')
danmu

user_level['uid'] = user_level['uid'].astype(str)

danmu_level = pd.merge(danmu, user_level, on='uid', how='inner')
danmu_level

弹幕内容

danmu_level.groupby('uid')[['id']].count().sort_values('id', ascending=False)

pd.set_option('display.max_rows', 300)
danmu_level[danmu_level['uid']=='6653485828143602809']

danmu_level[danmu_level['uid']=='6812827409839048297']

等级分布

danmu_level.groupby('level')[['id']].count().plot(kind='bar')

danmu_level.groupby('level')[['uid']].nunique().plot(kind='bar')

视频内容

视频内容处理

danmu

from time import strftime
from time import gmtime

danmu['progress'] = danmu['progress']/1000

danmu

danmu['视频进度'] = danmu['progress'].map(lambda x: strftime('%H:%M:%S', gmtime(x)))
#gtime计算弹幕在视频的那个时间

danmu

danmu['视频进度【时分】'] = danmu['视频进度'].str[:5]
danmu

视频内容分析

P1、系统认识数据分析

p1 = danmu[danmu['视频标题']=='1、系统认识数据分析.xlsx']

p1.groupby('视频进度【时分】')[['id']].count().sort_values('id', ascending=False)

p1[p1['视频进度【时分】']=='00:11']

p2、excel基础操作

p2 = danmu[danmu['视频标题']=='2、EXCEL基础操作.xlsx']
p2.groupby('视频进度【时分】')[['id']].count().sort_values('id', ascending=False)

p3、tableau数据可视化

p3 = danmu[danmu['视频标题']=='3、Tableau数据可视化.xlsx']
p3.groupby('视频进度【时分】')[['id']].count().sort_values('id', ascending=False)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值