Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在没有内存错误的情况下迭代大量行_Python_Pandas_Dataframe_Oop_Functional Programming - Fatal编程技术网

Python 在没有内存错误的情况下迭代大量行

Python 在没有内存错误的情况下迭代大量行,python,pandas,dataframe,oop,functional-programming,Python,Pandas,Dataframe,Oop,Functional Programming,我正在取消激活pandas数据帧,并且遇到了与以下代码行相关的内存错误(与前面的melt()操作一起): 数据帧看起来有点像这样: +----------+--------+--+ | ContactID| value | | +----------+--------+--+ | pd.Data | A,C | | | pd.Data | D,E,F | | | pd.Data | G,H,I,K| | | ... | ... | | +--------

我正在取消激活pandas数据帧,并且遇到了与以下代码行相关的内存错误(与前面的melt()操作一起):

数据帧看起来有点像这样:

+----------+--------+--+
| ContactID| value  |  |
+----------+--------+--+
| pd.Data  | A,C    |  |
| pd.Data  | D,E,F  |  |
| pd.Data  | G,H,I,K|  |
| ...      | ...    |  |
+----------+--------+--+
对于踢腿和咯咯笑,以下是准确的错误代码:

MemoryError: Unable to allocate array with shape (92, 12513354) and data type object

我的问题是我不能删除行,因为这是所有必需的数据,而df是1250万行,所以显然,将整列数据叠加到内存中(即使是64位)是不可行的。我可以通过哪些方法逐行迭代数据,应用str.split方法,并将其作为分隔值返回,同时确保所有行的列数一致以适应扩展?

解决方案1:购买更多RAM。解决方案2:将数据拆分为多个阵列,分别处理每个阵列(我的意思是:在任何给定时间在RAM中最多保留一个阵列。操作一段数据,将其保存到磁盘,继续执行下一个数据块ecc)请参见。有什么方法可以绕过此操作吗?您为什么需要拆分和扩展?@AMC谢谢您的参考,我来看看。我这样做的原因是因为数据是以逗号分隔的值结构的,我试图最终找出我有多少个A,多少个B,多少个C,etc@Tfmgvi_971我猜它不能被解读为CSV?顺便说一句,如果你只需要这么做,那么简单的旧csv模块和一个循环就可以了。
MemoryError: Unable to allocate array with shape (92, 12513354) and data type object