熊猫pct_change给出略有不同的答案手动
问题描述:
任何人都可以解释为什么pct_change功能使用更人工计算时,给出了略有不同的数字:熊猫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
这里的区别背后的原因是什么?
答
问题是第二个公式是错误的:
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
在这个公式中'(价格 - prices.shift(1))/ prices'你应该除以“price.shift(1))”。 –