pandas GroupBy 对象的方括号运算符是如何实现的?

问题描述 投票:0回答:1

在 Python 3.11 中:要将方括号运算符应用于对象,应实现该对象的

__getitem__
方法

在 Python 的

pandas
模块中,可以将方括号应用于通过
DataFrame
方法从
groupby()
返回的对象,例如
tips.groupby("sex")["total_bill"].count()
。 (示例取自本教程。)

但是,

__getitem__' 
pandas
对象
 的 API 参考中没有列出 
GroupBy
方法。怎么会?
pandas
GroupBy
对象的方括号运算符是如何实现的?

python-3.x pandas indexing group-by operator-overloading
1个回答
0
投票

有时我使用如下代码来查看源代码(如果可用):

import inspect
import pandas

groupby_obj = pandas.DataFrame().groupby(level=0)
print(f'{type(groupby_obj)=}\n{"-"*80}')

assert '__getitem__' in dir(groupby_obj)
code = inspect.getsource(groupby_obj.__getitem__)

print(code)

或者更确切地说,我只需在函数之后

键入
??即可查看 Jupyter Notebook 中的代码。不管怎样,你绝对可以在 GroupBy 对象中看到
__getitem__
并阅读它的源代码

正如在 pandas 的 GroupBy API 参考中提到的

__getitem__
一样,我认为 这部分关于 GroupBy 中的选择的部分是为了解释在这种情况下选择是如何工作的。

© www.soinside.com 2019 - 2024. All rights reserved.