Pandas 如何解析df.agg中name指定的函数 [英] How does Pandas resolve the function specified by name in df.agg

查看:50
本文介绍了Pandas 如何解析df.agg中name指定的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在学习 Pandas 和 Numpy,目前正在学习 教程的这一部分.我完全是 Python 新手,所以这可能是一个基本的初学者问题.

I'm learning Pandas and Numpy, currently going through this section of the tutorial. I'm new to Python altogether, so this is probably a basic beginner's question.

给定这个数据框:

df = pd.DataFrame(np.random.randn(4, 3), columns=['A', 'B', 'C'],
                      index=pd.date_range('1/1/2000', periods=4))
df.iloc[3:7] = np.nan

我无法解释 df.agg:

I can't explain the difference between the following results of df.agg:

呼叫 1:

df.agg(sum)

#Result:
A   NaN
B   NaN
C   NaN
dtype: float64

呼叫 2:

df.agg('sum')

#Result:
A   -1.776752
B   -2.070156
C   -0.124162
dtype: float64

df.agg('sum') 的结果与 df.agg(np.sum)df.sum().我希望 df.agg('sum') 产生与 df.agg(sum) 相同的结果.

The result of df.agg('sum') is the same as that of df.agg(np.sum) or df.sum(). I expected df.agg('sum') to produce the same result as df.agg(sum).

Pandas 是否有特殊的逻辑来解析这些函数,以便它更喜欢 np.sum(或运行 df.sum)而不是内置的 求和?

Does Pandas have special logic to resolve these functions such that it would prefer np.sum (or run df.sum) instead of the built-in sum?

推荐答案

在您链接到的文档中,它说:

In the documentation you linked to, it says:

您也可以将命名方法作为字符串传递.

You can also pass named methods as strings.

因此字符串被解析为 DataFrame 上的方法名称(或 Series,如果您在 Series 上调用 agg).

So strings are resolved as method names on the DataFrame (or Series, if you call agg on a Series).

这篇关于Pandas 如何解析df.agg中name指定的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆