为什么pandas中的apply函数会计算两次?

49 浏览
0 Comments

为什么pandas中的apply函数会计算两次?

我正在对pandas的DataFrame对象使用apply方法。当我的DataFrame只有一列时,似乎应用的函数被调用了两次。问题是为什么?我能停止这种行为吗?

代码:

import pandas as pd
def mul2(x):
    print ('hello')
    return 2*x
df = pd.DataFrame({'a': [1,2,0.67,1.34]})
df.apply(mul2)

输出:

hello
hello
0  2.00
1  4.00
2  1.34
3  2.68

我在被应用的函数中打印了'hello'。我知道它被应用了两次,因为'hello'打印了两次。更重要的是,如果我有两列,'hello'会打印3次。更重要的是,当我只对列应用apply时,'hello'会打印4次。

代码:

df.a.apply(mul2)

输出:

hello
hello
hello
hello
0    2.00
1    4.00
2    1.34
3    2.68
Name: a, dtype: float64

0