我想允许用户输入操作符。是否可以使用运算符模块在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
我是大熊猫的新手,我想知道我是否只是遗漏了一些明显的东西。
答案 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]