任何人都可以解释为什么pct_change函数在使用更多手动计算时会给出略微不同的数字:
pct_change函数:
print(prices)
0
0 1035.23
1 1032.47
print(prices.pct_change(1))
0
0 NaN
1 -0.002666
更多手动功能
(prices - prices.shift(1))/prices
0
0 NaN
1 -0.002673
差异背后的原因是什么?
答案 0 :(得分:3)
问题是第二个公式是错误的:
prices = pd.DataFrame({0:[1035.23,1032.47]})
print (prices)
print(prices.pct_change(1))
0
0 NaN
1 -0.002666
print(prices/(prices.shift())-1)
0
0 NaN
1 -0.002666
在评论中指出Andrew L:
print((prices - prices.shift(1))/prices.shift(1))
0
0 NaN
1 -0.002666