我最近一直在使用熊猫,当然使用了 .at [] 和 .loc [] 访问器。
我不问如何使用它们。
我想了解它们如何工作以及为什么不将它们实现为方法。
这可能是我不了解的一般Python主题。随意引用其他线程。我搜索了但没有发现有用的东西。
谢谢。
答案 0 :(得分:0)
如评论中所述,.at[]
和.loc[]
被实现为可切片的对象,以允许slice syntax像.loc[3:5]
一样,这在方法({{1} }。
在Python中实现此方法的方式是使.loc(3:5)
/ at
返回实现loc
的自定义对象,如下所示:
__getitem__
class C(object):
def __getitem__(self, val):
print val
内部的逻辑可以检查传递的__getitem__
的类型,并在传递时表现不同,例如,列表(val
),函数(.loc[[False, False, False]]
)或slice object(.loc[lambda x: ...]
)