pandas pivot_table:aggfunc参数值&引号

时间:2018-01-14 18:24:43

标签: python pandas parameter-passing pivot-table quotation-marks

这两行代码仅在已传递的参数值上有所不同。我不清楚的是,为什么在第一种情况下(“计数”)我们需要引号而在第二种情况下(len)则不需要它们。

by_weekday1 = users.pivot_table(index='weekday', aggfunc='count')

by_weekday2 = users.pivot_table(index='weekday', aggfunc=len)

提前致谢!

1 个答案:

答案 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)