当前位置: 首页 > 面试题库 >

使用Pandas和PyMongo将MongoDB数据加载到DataFrame的更好方法?

乌鸿宝
2023-03-14
问题内容

我有一个0.7 GB的MongoDB数据库,其中包含要尝试加载到数据帧中的推文。但是,我得到一个错误。

MemoryError:

我的代码如下所示:

cursor = tweets.find() #Where tweets is my collection
tweet_fields = ['id']
result = DataFrame(list(cursor), columns = tweet_fields)

我已经尝试了以下答案中的方法,这些方法有时会在加载数据库之前创建数据库所有元素的列表。

  • https://stackoverflow.com/a/17805626/2297475
  • https://stackoverflow.com/a/16255680/2297475

但是,在另一个有关list()的答案中,此人说这对小型数据集很有用,因为所有内容都已加载到内存中。

  • https://stackoverflow.com/a/13215411/2297475

就我而言,我认为这是错误的根源。太多数据无法加载到内存中。我还能使用什么其他方法?


问题答案:

我已将代码修改为以下内容:

cursor = tweets.find(fields=['id'])
tweet_fields = ['id']
result = DataFrame(list(cursor), columns = tweet_fields)

通过在find()函数中添加 fields
参数,我限制了输出。这意味着我没有将每个字段都加载到DataFrame中,而是仅加载了选定的字段。现在一切正常。



 类似资料:
  • 问题内容: 使用插入pandas DataFrame到mongodb的最快方法是什么? 尝试次数 给出了一个错误 给出了一个错误 给出了一个错误 df 问题答案: 我怀疑是否有 最快 和 最 简单的 方法。如果您不担心数据转换,可以 但是,如果您尝试将数据加载回,则会得到: 所以你必须将“A” columnt回S,以及所有不,或字段您。对于此示例:

  • 问题内容: 我有一个719mb的CSV文件,看起来像: 我想加载到熊猫DataFrame中。现在我知道csv方法有负载: 但我特别想将其加载为“ MultiIndex” DataFrame,其中from和to是索引: 所以最后以: 等等。我不确定该怎么做? 问题答案: 您可以使用: 我曾经摆脱标题行中那些烦人的空格的地方。

  • 本文向大家介绍Python操作MongoDB数据库PyMongo库使用方法,包括了Python操作MongoDB数据库PyMongo库使用方法的使用技巧和注意事项,需要的朋友参考一下 引用PyMongo 创建连接Connection 或 创建Connection时,指定host及port参数 连接数据库 或   连接聚集 或   查看全部聚集名称   查看聚集的一条记录   查看聚集的字段   查

  • 用例是读取一个文件并在其上创建一个数据帧。之后,获取该文件的架构并存储到DB表中。 例如,我只是创建一个case类并获取printschema,但是我无法从中创建数据帧 下面是一个示例代码 现在dfSchema是一个结构类型,并希望将其转换为两列的数据帧,如何实现

  • 问题内容: 我是python和pandas的新手。我正在尝试将文件加载到熊猫中。 这是我正在尝试的错误,也是我得到的: 问题答案: 注 :由于17.0气馁:使用替代 文档列出了一个.from_csv函数,该函数似乎可以执行您想要的操作: 如果您有标题,则可以传递。

  • 我正试着在一个熊猫数据目录中加载一个SQLAlchemy。 当我尝试: 我得到一个属性错误: 和 上一个问题SQLAlchemy ORM到pandas DataFrame的转换解决了我的问题,但是解决方案:使用不是我的解决方案。我使用db.session.add()和db.session.commit()打开/关闭会话,但是当我使用时,就会得到一个属性错误:

  • 我花了几个小时来诊断这个问题,我想看看有没有pymongo专家有什么想法: 以下代码行: 连接=pymongo。连接('localhost',27017) 生成以下错误: /usr/local/ceral/python/2.7.3/bin/python2。7/Users/danwilson/Dropbox/Projects/mysite/app。py 回溯(最后一次调用): 文件“/Users/d

  • 我使用talend将数据从as400加载到snowflake,有一个varchar列以yyyymmdd格式存储日期,当我将数据加载到snowflake中时,数据正在被更改,因为as400中的EX19890501值在snowflake中被加载为19890500,我试图在snowflake中保留varchar、date和number数据类型,但仍然是同样的问题,任何人面临同样的问题请帮助我解决。