我正在使用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' 打印了四次。
代码:
df.a.apply(mul2)
输出:
hello
hello
hello
hello
0 2.00
1 4.00
2 1.34
3 2.68
Name: a, dtype: float64