这是一种使用来计算日志返回的方法
.shift()。结果与所计算的总收益相似但不相同
pct_change()。您可以上传示例数据的副本(Dropbox共享链接)以重现您看到的不一致之处吗?
import pandas as pdimport numpy as npnp.random.seed(0)df = pd.Dataframe(100 + np.random.randn(100).cumsum(), columns=['price'])df['pct_change'] = df.price.pct_change()df['log_ret'] = np.log(df.price) - np.log(df.price.shift(1))Out[56]: price pct_change log_ret0 101.7641 NaN NaN1 102.1642 0.0039 0.00392 103.1429 0.0096 0.00953 105.3838 0.0217 0.02154 107.2514 0.0177 0.01765 106.2741 -0.0091 -0.00926 107.2242 0.0089 0.00897 107.0729 -0.0014 -0.0014.. ... ... ...92 101.6160 0.0021 0.002193 102.5926 0.0096 0.009694 102.9490 0.0035 0.003595 103.6555 0.0069 0.006896 103.6660 0.0001 0.000197 105.4519 0.0172 0.017198 105.5788 0.0012 0.001299 105.9808 0.0038 0.0038[100 rows x 3 columns]



