问题描述
我有一个名为 cum_strategy_asset_log_returns
的数据框:
data = {'Date': ['Jan','Feb','Mar'],'Log_price': ['0.1','0.2','0.3'],}
cum_strategy_asset_log_returns= pd.DataFrame (data,columns = ['Date','Log_price'])
print (cum_strategy_asset_log_returns)
我现在要做的就是将这些对数收益改成相对收益。这可以通过以下行完成:
cum_strategy_asset_relative_returns = np.exp(cum_strategy_asset_log_returns) - 1
但我收到以下错误:RuntimeWarning: overflow encountered in exp
我在 Windows 上编码,所以我不能使用 float128。我还查看了其他 stackoverflow 问题,但我似乎无法弄清楚...希望您能帮助我!
解决方法
我假设 'Log_Price'
的数据应该是 float
而不是 str
。鉴于您可以执行以下操作:
import numpy as np
import pandas as pd
data = {
'Date': ['Jan','Feb','Mar'],'Log_price': list(map(float,['0.1','0.2','0.3'])),}
df = pd.DataFrame.from_dict(data)
df['Relative_returns'] = np.exp(df['Log_price']) - 1
print(df)
输出:
Date Log_price Relative_returns
0 Jan 0.1 0.105171
1 Feb 0.2 0.221403
2 Mar 0.3 0.349859