大熊猫不能按列值过滤

时间:2018-06-08 06:01:55

标签: python pandas dataframe

我想只获取数据帧中那些特定的coulmn值小于某个上限的行。

我曾经这样做过:

final_data[final_data['Time']<30.000000]

它给了我错误:

IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match

我再次尝试:

final_data.loc[:,final_data['Time']<30.000000]

我得到了:

IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match

如何根据列值在pandas中实现过滤器?

1 个答案:

答案 0 :(得分:2)

在我看来,第一个解决方案应该在pandas 0.23.0中完美运行。

另一个解决方案是将列转换为numpy数组,以避免在掩码和DataFrame之间对齐索引:

final_data[final_data['Time'].values < 30.000000]

final_data.loc[:,final_data['ResponseSLATime'].values < 30.000000]

或使用query

final_data.query('Time < 30.000000')