You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PythonAnywhere用Python2.7分析已爬取的YouTube视频数据?

分析YouTube视频数据的具体方法

嘿,你已经搞定了最费劲儿的爬取环节,接下来的数据分析其实很直观,咱们用Python 2.7一步步来实现你要的指标:

第一步:整理数据集合

首先确保你把所有爬取到的Video实例都存到了一个列表里——相信你爬取的时候已经在做这件事了,类似这样:

# 初始化存储所有视频的列表
videos = []

# 爬取过程中,每生成一个Video实例就添加进去
# 示例:
videos.append(Video(
    title="我的第一个测试视频",
    description="这是一段演示内容",
    views=1200,
    likes=65,
    dislikes=3,
    tags=["Python", "数据分析"],
    comments=[]
))

第二步:计算基础统计指标

平均观看量、点赞数、点踩数

Python 2.7里整数除法会自动取整,所以记得先把总数转成float再除以视频数量,避免结果失真:

# 平均观看量
total_views = sum(video.views for video in videos)
average_views = float(total_views) / len(videos)
print("平均观看量:{:.2f}".format(average_views))

# 平均点赞数
total_likes = sum(video.likes for video in videos)
average_likes = float(total_likes) / len(videos)
print("平均点赞数:{:.2f}".format(average_likes))

# 平均点踩数
total_dislikes = sum(video.dislikes for video in videos)
average_dislikes = float(total_dislikes) / len(videos)
print("平均点踩数:{:.2f}".format(average_dislikes))

中位数(更抗极端值的参考指标)

平均值容易被少数爆火视频拉高,中位数能更客观反映大多数视频的真实表现:

# 先把观看量排序
sorted_views = sorted(video.views for video in videos)
video_count = len(sorted_views)

if video_count % 2 == 0:
    # 偶数个数据,取中间两个值的平均值
    median_views = (sorted_views[video_count//2 - 1] + sorted_views[video_count//2]) / 2.0
else:
    # 奇数个数据,直接取中间值
    median_views = sorted_views[video_count//2]

print("观看量中位数:{:.2f}".format(median_views))

第三步:进阶分析(可选)

按标签统计平均表现

想知道哪个标签的视频更容易获得高观看量?用字典就能轻松统计:

tag_stats = {}
for video in videos:
    for tag in video.tags:
        if tag not in tag_stats:
            # 初始化标签的统计项:总观看量、视频数量
            tag_stats[tag] = {'total_views': 0, 'count': 0}
        tag_stats[tag]['total_views'] += video.views
        tag_stats[tag]['count'] += 1

# 计算每个标签的平均观看量
tag_avg_views = {
    tag: float(stats['total_views']) / stats['count'] 
    for tag, stats in tag_stats.items()
}

# 按平均观看量从高到低排序,取Top5
sorted_tags = sorted(tag_avg_views.items(), key=lambda x: x[1], reverse=True)
print("\nTop 5高平均观看量标签:")
for tag, avg_view in sorted_tags[:5]:
    print("{}: {:.2f}".format(tag, avg_view))

点赞率分析(点赞数/观看量)

这个指标能更精准反映视频的受欢迎程度(避免只看绝对点赞数的偏差):

# 过滤掉观看量为0的视频,避免除以0报错
valid_videos = [v for v in videos if v.views > 0]

# 计算每个视频的点赞率
like_rates = [(v.title, float(v.likes)/v.views) for v in valid_videos]

# 按点赞率从高到低排序,取Top5
sorted_like_rates = sorted(like_rates, key=lambda x: x[1], reverse=True)
print("\nTop 5高点赞率视频:")
for title, rate in sorted_like_rates[:5]:
    print("{}: {:.2%}".format(title, rate))

针对Python 2.7的小提示

  • 建议在文件开头加上from __future__ import print_function,这样print()会以函数形式工作,使用format方法时更灵活;
  • 处理数千条数据时,尽量用生成器表达式(比如sum(video.views for video in videos))而非列表推导,能节省不少内存。

内容的提问来源于stack exchange,提问作者Muzly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:52:43