擅长:python、mysql、java
<p>我查看了pandas源代码,发现至少在聚合pandas系列时,字符串函数名通过调用</p>
<pre class="lang-py prettyprint-override"><code>if isinstance(func, str):
return getattr(self, func)(*args, **kwargs)
</code></pre>
<p>其中<code>self</code>是<code>SeriesGroupBy</code>的实例,它是<code>GroupBy</code>的子类。<code>GroupBy</code>类有许多方法可用于聚合(包括<code>count</code>、<code>mean</code>、<code>median</code>等)^另一方面,{<cd8>}当然不是<code>GroupBy</code>的方法,而是一个内置的Python函数,因此调用<code>getattr()</code>时找不到它。我假设<code>DataFrameGroupBy</code>也是这样,因为它也是<code>GroupBy</code>的一个子类</p>
<p>以类似的方式,<code>.agg()</code>在作为字符串提供时将无法使用任何用户定义的函数名</p>
<p>有关提供给<code>.agg()</code>的所有可用字符串的列表,请查看<a href="https://pandas.pydata.org/docs/reference/groupby.html" rel="nofollow noreferrer">this article in the pandas documentation</a></p>