Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫如何解析df.agg中由name指定的函数_Python_Pandas - Fatal编程技术网

Python 熊猫如何解析df.agg中由name指定的函数

Python 熊猫如何解析df.agg中由name指定的函数,python,pandas,Python,Pandas,我正在学习熊猫和Numpy,目前正在进行教程的学习。我对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 我无法解释以下结果之间的差异: 电话1: df.agg(su

我正在学习熊猫和Numpy,目前正在进行教程的学习。我对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
我无法解释以下结果之间的差异:

电话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

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

还可以将命名方法作为字符串传递


因此字符串在数据帧(或序列,如果您在序列上调用
agg
)上解析为方法名。

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

还可以将命名方法作为字符串传递


因此字符串被解析为数据帧上的方法名(或者序列,如果你在序列上调用
agg

你的意思是我应该把“方法”理解为
DataFrame
或者
Series
df.function\u name()调用的函数吗?(我认为方法与函数的含义完全相同)。这可能就是我所说的细微差别missing@ernest_k:Python中的方法是绑定到对象的函数。因此,如果你正在做
foo.bar()
,那么
bar
foo
的一种方法。这也意味着
agg('some pandas\u func')
agg(pd.PandasObject.same\u pandas\u func)
=
df.agg(pd.DataFrame.sum)
=
df.agg('sum')
。用字符串调用只是到达属于对象的函数的简写。您的意思可能是我应该将“方法”理解为使用
df.function\u name()调用的
DataFrame
Series
函数?(我认为方法与函数的含义完全相同)。这可能就是我所说的细微差别missing@ernest_k:Python中的方法是绑定到对象的函数。因此,如果你正在做
foo.bar()
,那么
bar
foo
的一种方法。这也意味着
agg('some pandas\u func')
agg(pd.PandasObject.same\u pandas\u func)
=
df.agg(pd.DataFrame.sum)
=
df.agg('sum')
。使用字符串调用只是到达属于对象的函数的简写。