使用 Django 可视化抓取的数据

问题描述 投票:0回答:1

嗨,我是 django 新手,我认为用它来可视化我从某些网站抓取的数据会很有趣,比如这个视频)

(https://www.youtube.com/watch?v=TcnWEQMT3_A&list=PL-2EBeDYMIbTt63EH9ubqbvQqJkBP3vzy&index=1)

但是我发现很难选择正确的加载数据的方式。

现在,我有一个 python 程序,可以从 fbref.com(足球相关网站)抓取 5 大联赛球员的统计数据,并将其存储到 csv 文件中。

我想我现在有两个选择?

  1. 在 django 中创建模型并读取 csv 文件以将每一行存储为单独的模型。所以基本上,我将数据存储在 Django db 中,类似于

  2. 不创建单独的 Django 模型并使用 pandas 数据框。 (不将我的数据存储到 Django DB)。

我觉得第一种方法效率较低,因为我正在考虑稍后添加进一步的数据分析,所以无论如何我最终都会主要使用 pandas dataframe。不过,我很低调,担心如果我不使用 Django 数据库,是否会出现严重错误。

哪种方法更好?有更好的方法吗?

谢谢!

我最初尝试了第二种方法,但我担心数据管理,

django pandas database visualization
1个回答
0
投票

通常您不需要对“所有”数据进行数据处理。事实上,您经常需要(非常)狭窄的数据子集。例如,如果您想要处理西班牙联赛过去五个赛季的进球统计数据。如果您必须将“所有”数据加载到数据框中,那么您经常会做错事。当您不断抓取数据时,文件会变得越来越大,最终服务器将耗尽内存,并且处理时间将花费更长的时间,因为它需要更多的磁盘 I/O。 数据库经过优化以检索数据子集:通过使用 索引,它们很少需要遍历所有记录,并且通常可以在

𝓞(log n)

中查看哪些记录是必要的,然后仅执行磁盘操作I/O 仅检索这些项目,并与一些高级缓存机制相结合。 在某种程度上,pandas 的作用与数据库的作用相同,只不过它将所有数据保存在内存中。如果数据相当小,那就没问题。随着数据的增长,并非所有数据都适合内存。但即使是这样,将文件加载到内存中也需要与总行数呈线性关系的时间,而不是您“感兴趣”的行。 所以通常最好将数据存储在数据库中,使用它进行一些过滤和聚合。如果您需要更高级的功能,可以通过

QuerySet

 

[pypi.org]

 将 Django 
DataFrame
转换为 pandas django-pandas。这样就可以进行额外的处理。但首先使用数据库通常会大大减少磁盘 I/O 量和内存使用量。
    
© www.soinside.com 2019 - 2024. All rights reserved.