运算符模块和 pandas

operator module and pandas

我想让用户输入运算符。是否可以将运算符模块用于 pandas 数据帧中的 select 值? 我试过以下方法:

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

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

你需要在算子调用后做DataFrame索引:

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

因为operator.lt returns一个boolean Series, which can be used by df[...] as index. It's called boolean array indexing.

但是,如果您实际上不需要运算符模块,您可以这样写:

df[df['numbers'] < 10]