这是股票的每日回报,我将数据存储在名为simple_return的数据框中。
15.3238
15.2006
15.1595
15.1184
15.0773
我执行以下代码:
simple_return = simple_return/simple_return.shift(1) - 1
当我这样做时,我得到以下输出:
1
nan
-0.3419843641916497
-0.9511866154929438
20.205810646078827
-0.2978778443113772
-0.06755908520277276
由于我在Libreoffice Calc上进行了计算,因此以下输出为false,正确的计算是:
15.3238
15.2006 -0.008039781255302
15.1595 -0.00270384063787
15.1184 -0.002711171212771
15.0773 -0.002718541644618
为什么代码进行了错误的计算?
解决办法:无法使用以下代码重现您的结果版本:
>>> import pandas as pd
>>> simple_return = pd.Series([15.3238, 15.2006, 15.1595, 15.1184, 15.0773])
>>> simple_return = simple_return / simple_return.shift(1)
>>> simple_return
0 NaN
1 -0.008040
2 -0.002704
3 -0.002711
4 -0.002719
dtype: float64
如果不假设您正在计算什么,我的定义中的代码应该可以正常工作。在计算之前,确保您的simple_return对象是pandas.Series从pandas.DataFrame存储它的任何内容索引它。
祝好运。
三个资料Q群下载不了也转发不了,先放这里Fine_tuning.zipLangChain.zipdata_clear.rar