分析对象列表中的数据

2024-04-25 06:40:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图分析来自多个YouTube视频的数据。我不知道如何使用youtubeapi,甚至不知道是否可以通过这个方法。相反,我通过pythonywhere使用python2.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中;我需要一些处理时间来分析数据。你知道吗


Tags: 文件数据对象方法self列表for视频
2条回答

对我来说,这听起来像是一个很好的例子,熊猫数据帧中每个视频的统计数据都是一列或一行的相关数据。你知道吗

您可能需要执行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()

查看索引和子设置选项和筛选的选择。你知道吗

你可能需要对评论做一些不同的处理,这取决于你想如何分析它们,但我认为熊猫会为你提供一个很好的基础来评估你可能想看到的东西。如果将所有注释加载到数据框中,则可以使用结构包含操作员找到东西。我还没做太多,所以可能有更好的办法。你知道吗

假设每个视频实例都包含一个视频的属性,那么每次创建新的视频实例时都可以更新一个全局变量。比如:

total_views += video.views

或:

if video.views > most_viewed_video.views:
    most_viewed_video = video

这是一种相当直接和简单的方法,不需要了解任何关于代码库的其他信息。从理论上讲,您应该能够完全摆脱for循环,除非您希望将一个selectnumber a视频相互比较。你知道吗

相关问题 更多 >