提问人:Evan Aad 提问时间:8/15/2023 更新时间:8/16/2023 访问量:70
如何为 pandas GroupBy 对象实现方括号运算符?
How is the square bracket operator implemented for pandas GroupBy objects?
问:
在 Python 3.11 中:要将方括号运算符应用于对象,应实现对象的 __getitem__
方法。
在 Python 的模块中,可以将方括号应用于通过该方法返回的对象,例如 .(示例摘自本教程。pandas
DataFrame
groupby()
tips.groupby("sex")["total_bill"].count()
但是,pandas
的 API 参考中没有列出 GroupBy
对象的方法。怎么会这样?方括号运算符是如何为对象实现的?__getitem__
pandas
GroupBy
答:
1赞
Vitalizzare
8/16/2023
#1
有时我使用如下代码来查看源代码(如果可用):
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 参考中提到的,我想关于 GroupBy 中的选择的这一部分旨在解释在这种情况下选择是如何工作的。__getitem__
评论
__getitem__
__eq__
__le__
__getitem__
pandas
GroupBy
__iter__