Pandas is.in在数据帧中的子集设置很慢,但仅适用于一百万+1行

时间:2018-07-15 19:15:08

标签: python python-2.7 pandas dataframe

我正在尝试为“ X”列中的值在特定列表中的行过滤熊猫数据框DF。

DF_filtered = DF[DF['X'].isin(list.of.interest)]

DF通常长百万行。

以下几行代码在不到一秒钟的时间内完成:

DF_filtered = DF[0:1000000][DF[0:1000000]['X'].isin(list.of.interest)]
DF_filtered = DF[500000:1500000][DF[500000:1500000]['X'].isin(list.of.interest)]

但是,此行最多需要15分钟:

DF_filtered = DF[0:1000001][DF[0:1000001]['X'].isin(list.of.interest)]

这只是pandas / python的怪癖吗?我知道将其包装在批处理函数中会很简单,但是我真的不知道为什么会这样。

0 个答案:

没有答案