“DataFrame”行的内存高效过滤

abu*_*kaj 4 python python-2.7 python-3.x pandas

我有一个大DataFrame对象(1,440,000,000 行)。我在内存(包括交换)限制下运行。

我需要提取具有特定字段值的行的子集。但是,如果我这样做:

>>> SUBSET = DATA[DATA.field == value]
Run Code Online (Sandbox Code Playgroud)

我以MemoryError异常或崩溃结束。有什么方法可以显式过滤行 - 无需计算中间掩码(DATA.field == value)?

我找到了DataFrame.filter()DataFrame.select()方法,但它们对列标签/行索引而不是行数据进行操作。

jez*_*ael 5

使用query,它应该会快一点:

df = df.query("field == value")
Run Code Online (Sandbox Code Playgroud)