以下代码返回了我不期望的额外信息。这是一个问题,还是我错过了什么?
import pandas as pd
df = pd.DataFrame({'symbol':['A','B','C'],
'volume':[561,56,8]})
group = df.groupby('symbol')
def f1(group):
print group
return group
group.apply(f1)
我收到了:
symbol volume
0 A 561
symbol volume
0 A 561
symbol volume
1 B 56
symbol volume
2 C 8
正如您所看到的,我的问题在于print语句。我两次获得组“A”,我不确定这是不是一个bug。有人可以证实吗?
熊猫版:'0.14.1'
答案 0 :(得分:2)
来自pandas documentation:
警告:在当前实现中,应用调用func两次 第一组决定是否可以采用快速或慢速代码路径。 如果func有副作用,这会导致意外行为 将对第一组生效两次。
这就是为什么在第一组上调用一次方法的原因。它是实施的。