当前位置: 首页 > 知识库问答 >
问题:

pandas中的大型持久数据帧

莫兴言
2023-03-14

作为一个长期的SAS用户,我正在探索切换到python和pandas。

然而,在今天运行一些测试时,我很惊讶python在尝试pandas.read_csv()一个128MB的csv文件时内存耗尽。它大约有200,000行和200列,大部分是数字数据。

使用SAS,我可以将csv文件导入SAS数据集,并且它可以和我的硬盘一样大。

pandas中有类似的内容吗?

我经常处理大文件,没有访问分布式计算网络的权限。

共有1个答案

郭星文
2023-03-14

原则上,它不应该耗尽内存,但当前在大文件上的read_csv存在内存问题,这是由一些复杂的Python内部问题引起的(这是模糊的,但很久以前就知道了:http://github.com/pydata/pandas/issues/407)。

目前还没有一个完美的解决方案(这里有一个单调乏味的解决方案:您可以将文件逐行转录成预先分配的NumPy数组或内存映射文件--np.mmap),但我将在不久的将来研究它。另一种解决方案是以较小的片段读取文件(使用iterator=true,chunksize=1000),然后用pd.concat进行级联。当你把整个文本文件一下子拉到内存中时,问题就出现了。

 类似资料:
  • 问题内容: 有没有人知道一个库或至少一些有关在Java中创建和使用持久性数据结构的研究?我不是将持久性称为长期存储,而是将持久性称为不变性(请参阅Wikipedia条目)。 我目前正在探索为持久性结构建模api的不同方法。使用构建器似乎是一个有趣的解决方案: 但这仍然感觉有些呆板。有任何想法吗? 问题答案: 我想显而易见的选择是: o切换到临时数据结构(构建器)进行更新。这是很正常的。用于操纵例如

  • 为了学习数据的持久化,写一个简单的地址薄合约.虽然这个例子因为各种原因作为生产环境的合约不太实用,但它是一个很好的合约用来学习EOSIO的数据持久化并且不会因为与eosio multi_index不相关的相关业务逻辑分心. Step 1:创建一个新的文件夹 进入之前的目录: cd /Users/zhong/coding/CLion/contracts 为我们的合约创建一个新的目录并进去: mkd

  • 当我尝试将Point datatype持久化到postgres DB时,它失败了,错误org.postgresql.util.PSQLE:错误: ERROR:列“Point Col就列”是点类型,但表达式是几何类型 这是我的波乔快照 这是我的驱动程序和方言属性 驱动程序org.postgresql. dialect = org . hibernate . spatial . dialect . p

  • 我想从InstaCart https://www.InstaCart.com/datasets/grocery-shopping-2017加载大型.csv(3.4百万行,20.6万用户)开源数据集 基本上,我在将orders.csv加载到Pandas数据帧中时遇到了麻烦。我想学习将大文件加载到Pandas/Python中的最佳实践。

  • 问题内容: 我试图使用s或函数读取稍大的数据集,但我一直遇到s。数据框的最大大小是多少?我的理解是,只要数据适合内存,数据帧就应该可以,这对我来说不是问题。还有什么可能导致内存错误? 就上下文而言,我试图在《2007年消费者金融调查》中阅读ASCII格式(使用)和Stata格式(使用)。该文件的dta大小约为200MB,而ASCII的大小约为1.2GB,在Stata中打开该文件将告诉我,对于22,

  • 问题内容: 我正在Java中寻找一个持久的哈希结构,这是一个简单的键值存储,其中key是唯一的字符串,value是一个int。每次将现有密钥添加到存储中时,密钥的值将增加。 我需要它很大-可能有5亿-10亿个密钥。我一直在评估tokyo-cabinet http://fallabs.com/tokyocabinet/javadoc/,但不确定其扩展性如何- 随着哈希值的增加,插入时间似乎越来越长。