我想知道在比较类的属性时是否有一种方法可以在python3中重载一个运算符?我的属性是1-long panda.Series(是的,这看起来很愚蠢,但在处理大量对象时我需要它),我希望能够在不调用item()
的情况下将这些属性与列表推导结合使用方法(用于API可读性)。
示例:
class Signal(object):
@property
def halftime(self):
return pd.Series(whatever_with_len_eq_1)
什么有效:
signals = [Signal(a), Signal(b), Signal(c)]
best_signals = [sig for sig in signals if sig.halftime.item() > 25]
我想做什么:
signals = [Signal(a), Signal(b), Signal(c)]
best_signals = [sig for sig in signals if sig.halftime > 25]
然而,1-term系列和float / int的直接比较未经pandas授权。所以我想知道是否有一种方法可以超载属性比较(ex @halftime.__geq__
,但是对SO的快速研究表明它不太可能);或者我应该去哪个方向:重载熊猫。系列比较方法?制作一个包装器(但我不能看到一个能够在比较时“转换”我的数据而不是直接调用时的数据?)
非常感谢你!