【问题标题】:RuntimeWarning: overflow encountered in exp (log to relative)RuntimeWarning:exp 中遇到溢出(记录到相对)
【发布时间】:2021-02-13 19:05:00
【问题描述】:

我有一个名为 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 问题,但我似乎无法弄清楚......希望你能帮助我!

【问题讨论】:

    标签: python pandas numpy exp


    【解决方案1】:

    我假设'Log_Price' 的数据应该是floats 而不是strs。鉴于您可以执行以下操作:

    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
    

    【讨论】:

    • 感谢回复,但 Log_price 列已经是 float64 值
    猜你喜欢
    • 2017-11-15
    • 2018-07-10
    • 2020-12-06
    • 2022-12-04
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多