我有一个叫TI的DF。我想删除BookDate为NaN的行。所以我跑:

TI = TI.dropna(subset=['#Book_Date'])

当我运行这个命令时,内存会因为某种原因被消耗掉(我在100GB的RAM机器上,大约50%的RAM用于保存TI,当我运行dropna行时,它会100%使用,并且永远不会完成命令的执行)。它是在做一个全新的拷贝吗?TI是一个6400万行的数据帧,所以它需要更高效。

最佳答案

到目前为止,最好的方法是通过使用这个列必须是有限的。你需要用核弹来做这个。

from pandas import *
import numpy

TI = TI[np.isfinite(TI['#Book_Date'])]

关于python - 更有效的pandas python命令删除Nan行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26719315/

10-12 21:10