gpt4 book ai didi

python - 分析对象列表中的数据

转载 作者:行者123 更新时间:2023-12-01 09:30:01 25 4
gpt4 key购买 nike

我正在尝试分析多个 YouTube 视频的数据。我不知道如何使用 YouTube API,也不知道是否可以通过该方法使用。相反,我通过 PythonAnywhere 使用 Python 2.7。

我创建了一个具有许多属性的“视频”类:

class Video:
def __init__(self, title, description, views, likes, dislikes, tags, comments...):
self.title = title
...

并已抓取了数千个视频的数据。该计划是分析数据,找出平均观看次数、点赞数等,以及标题、描述中最流行的单词……或每天观看次数最多的视频(基于上传日期和当前观看次数)。我正在尝试分析很多事情。

问题是:分析许多对象列表的此类数据的最佳方法是什么? (或者有比使用对象列表更好的方法吗?)

我已通过单个 for 尝试过此操作循环累积数字,然后在最后显示数字。

我还尝试使用列表理解(例如 print("Longest title:" + str(max([len(v.title) for v in allVids])))

我担心使用像这样的多个列表理解是低效的,并且单个巨大的 for如果不是为了可读性,从长远来看,循环会更好。

非常感谢任何帮助,对于如此广泛的问题我深表歉意;我在本网站的其他地方找不到答案。

编辑 - 更多信息:我每天同一时间从十大热门视频中抓取数据。一天的对象列表将保存为 pickle 文件。在分析数据时,我加载了所有文件并将它们全部添加到一个列表中。

我正在寻找最/更有效的方法的原因是因为我正在使用PythonAnywhere来安排数据的抓取,并且我不想一直在tarpit中;我需要一些处理时间来分析数据。

最佳答案

对我来说,这听起来像是 Pandas 数据框的一个很好的例子,其中每个视频的统计数据将是包含相关数据的列或行。

您可能需要执行一个 for 循环来最初构建数据帧,但假设它适合内存,您应该已经为其余的评估做好了准备。它看起来像这样。

import pandas as pd

# create a data frame
df = pd.DataFrame(columns=['upload date', 'title', 'description', 'views', 'likes', 'dislikes']

# add data to data frame
for vid in saved_vids:
df[vid, 'title'] = vid.title
df[vid, 'views'] = vid.views
# and so on

这可以让您轻松找到每天的平均观看次数、点赞数等。

df.views.mean()

查看索引和选择以进行子集化选项和过滤。

您可能需要对评论做一些不同的事情,具体取决于您想要如何分析它们,但我认为 pandas 将为您提供一个良好的基础来评估您可能希望看到的内容。如果将所有注释加载到数据框中,则可以使用 str.contains 运算符来查找内容。不过我还没有做太多的事情,所以可能有更好的方法。

关于python - 分析对象列表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50047919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com