我正在学习Pandas和Numpy,目前正在通过本教程的this section。我完全是Python的新手,所以这可能是一个基本的初学者问题。
鉴于此数据框架:
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
的以下结果之间的区别:
致电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)
相同的结果。
Pandas是否有特殊的逻辑来解决这些功能,以便它更喜欢np.sum
(或运行df.sum
)而不是内置的sum
?
在您链接到的文档中,它说:
您还可以将命名方法作为字符串传递。
因此,字符串将被解析为DataFrame上的方法名称(如果在系列上调用agg
,则为系列)。