Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.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 .upper()和.apply(str.upper)上的括号_Python_Pandas - Fatal编程技术网

Python .upper()和.apply(str.upper)上的括号

Python .upper()和.apply(str.upper)上的括号,python,pandas,Python,Pandas,为什么df.apply(df.str.upper)中的upper不需要括号,但是upper()方法需要括号,就像df.str.upper()中一样 是否有一些概念我遗漏了?当您使用.apply(function\u name)时,内部将function\u name视为已应用函数的引用。因此,只传递函数名,也不传递括号。 将其应用于实体时,将从函数\u name访问该实体 这就像将一个函数作为参数传递给另一个函数一样 例如: def fun(x): return x*x def fun_

为什么
df.apply(df.str.upper)
中的
upper
不需要括号,但是
upper()
方法需要括号,就像
df.str.upper()
中一样

是否有一些概念我遗漏了?

当您使用
.apply(function\u name)
时,内部将function\u name视为已应用函数的引用。因此,只传递函数名,也不传递括号。
将其应用于实体时,将从
函数\u name
访问该实体
这就像将一个函数作为参数传递给另一个函数一样

例如:

def fun(x):
   return x*x

def fun_b(function):
   return function(3)

print(fun_b(fun))

在Python中,一切都是对象。不带括号的函数不求值,并将其视为对象。带括号的函数将立即求值

例如:

>>def return_one():
...     返回1
... 
>>>返回_one#返回对象引用,不计算
>>>返回_one()#评估函数
1.
记住这一点,
.apply
方法获取一个函数对象,然后在稍后的时间点调用它。如果要编写
.apply(str.upper())
str.upper()
将计算为
str
,而不是
func
对象。

()
表示“立即调用此函数”

引用没有
()
的函数不会立即调用该函数

map(str.upper)

str.upper
函数被传递给
map
函数。
map
函数现在可以决定如何使用
str.upper
函数。它可能会调用它一次或多次,或者将它存储在某个地方供以后使用。

您应该使用和熊猫标签,以使其更清晰。
map(str.upper)