这两行代码仅在已传递的参数值上有所不同。我不清楚的是,为什么在第一种情况下(“计数”)我们需要引号而在第二种情况下(len)则不需要它们。
by_weekday1 = users.pivot_table(index='weekday', aggfunc='count')
by_weekday2 = users.pivot_table(index='weekday', aggfunc=len)
提前致谢!
答案 0 :(得分:1)
你只能指定Numpy或Pandas方法(换句话说,Pandas认为[内置于Pandas]的函数)作为字符串(用引号),否则它是一个函数(它也可以是一个numpy函数) :
users.pivot_table(index='weekday', aggfunc='sum')
类似于:
users.pivot_table(index='weekday', aggfunc=np.sum)
<强>更新强>
这是一个excerpt from the source files:
def _python_agg_general(self, func, *args, **kwargs):
func = self._is_builtin_func(func)
...
其中_is_builtin_func()
defined as follows:
def _is_builtin_func(self, arg):
"""
if we define an builtin function for this argument, return it,
otherwise return the arg
"""
return SelectionMixin._builtin_table.get(arg, arg)