我正在尝试为“ 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的怪癖吗?我知道将其包装在批处理函数中会很简单,但是我真的不知道为什么会这样。