我这里的dataframe,只有一行数据
当我用dataframe直接调用apply方法并返回一个个series时,会print两次1
然而当我只返回一个列值的时候是不会有这个重复的问题的。
官方的解释:
apply在第一列/行上调用func两次,以决定是否可以进行某些优化。
而在pandas==0.18.1以及最新的pandas==0.23.4中进行尝试后发现,这个情况都存在
如果你有把握该df第一行会触发两次,你就可以用下列解决方案:
解决方案:
global flag
flag = False
def test(x):
global flag
if flag == False:
flag = True
return
print(x)
通过全局变量控制跳过第一次 循环
其他解决方案,你可以用用设置唯一值来解决
亲测,可用