运算符模块和pandas

时间:2017-09-24 23:16:56

标签: python pandas operators

我想允许用户输入操作符。是否可以使用运算符模块在pandas数据帧中选择值? 我尝试过以下方法:

import pandas as pd
import operator

In [7]: df=pd.DataFrame(ab,columns=['numbers','letters'])

In [8]: print(df)
   numbers letters
0       10       a
1        5       b
2        8       c
3       11       d
4       15       e

我试过这个以获取所有值< 10:

df1=operator.lt(df[df['numbers'],10])

但是我收到以下错误消息:

TypeError: 'Series' objects are mutable, thus they cannot be hashed

我是大熊猫的新手,我想知道我是否只是遗漏了一些明显的东西。

1 个答案:

答案 0 :(得分:2)

您需要在操作员调用后进行DataFrame索引:

df1=df[operator.lt(df['numbers'],10)]

因为operator.lt返回boolean Series, which can be used by df[...] as index。它被称为boolean array indexing

但是,如果您实际上不需要操作员模块,则可以写下:

df[df['numbers'] < 10]
相关问题