我有一个非常大的数据框(3800万行):
df = pd.DataFrame({'I':[1,2,3,4], 'C':[80,160,240,80],
'F':[(1,2,3,4),(5,7,2),(9,6,2,5,7),(4,0,8,3,2)]})
C F I
0 80 (1, 2, 3, 4) 1
1 160 (5, 7, 2) 2
2 240 (9, 6, 2, 5, 7) 3
3 80 (4, 0, 8, 3, 2) 4
现在我想要过滤掉包含数字
3
的行,在列'F'
中。
处理后应为:
C F I
0 80 (1, 2, 3, 4) 1
3 80 (4, 0, 8, 3, 2) 4
有没有一种高性能、低内存使用的方法来实现这个?我尝试过
np.equal((3), df['F'].values).all()
,但显然这不起作用。
set
? - Wardin
是最快的。 - jezraelNaN
- 就像在您的解决方案中一样,而是重复行。 - jezrael