我正在寻找关于使用pandas
迭代器的建议。
我用Python pandas
执行了一个解析操作,输入文件的大小(一个叫eggNOG的生物信息学程序)导致了“RAM瓶颈”现象。只是没有处理文件。
显而易见的解决方案是转换为迭代器,对于pandas
,它是chunksize
选项
import pandas as pd
import numpy as np
df = pd.read_csv('myinfile.csv', sep="\t", chunksize=100)
与原始代码不同的是chunksize=100
位,强制使用迭代器。
下一步就是执行一个简单的操作,删除几列并将所有'-'字符移动到np.nan,然后写入整个文件。
df.drop(['score', 'evalue', 'Description', 'EC', 'PFAMs'],axis=1).replace('-', np.nan)
df.to_csv('my.csv',sep='\t',index=False)
如何在pandas迭代器下完成此操作?
2条答案
按热度按时间mzsu5hc01#
IIUC,您可以:
如果您知道要保留的列而不是要删除的列,请用途:
@el_oso的启发:
hpcdzsge2#
如果你在阅读文件时已经遇到内存问题,下面的方法实际上会以块的形式对新文件进行读写。
f
is _io.TextIOWrapper即可以在小内存块中一致写入的流