亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python3 如何打印一條語句,該語句采用從數據框派生的值?

Python3 如何打印一條語句,該語句采用從數據框派生的值?

慕森王 2023-05-23 14:37:48
我需要幫助打印出一份聲明,該聲明提供夏普比率最高的 A 和 B 各自分配的權重;這是從數據框派生的。到目前為止我做了什么:輸入efficient_df = pd.DataFrame({'Weights_A':weighted_A,                              'Weights_B':weighted_B,                              'Portfolio Return': port_ret,                             'Portfolio Std Dev': port_std,                             'Sharpe Ratio': sharpe_ratio                              })print (efficient_df.head())print('\n')sharpe_highest = efficient_df[efficient_df['Sharpe Ratio'] == efficient_df['Sharpe Ratio'].max()]print('Optimal portfolio details: ')print(sharpe_highest)輸出   Weights_A    Weights_B     Portfolio Return  Portfolio Std Dev  Sharpe Ratio0        0.00        1.00              0.001933          0.017561          0.1100811        0.01        0.99              0.001928          0.017386          0.1109162        0.02        0.98              0.001924          0.017212          0.1117603        0.03        0.97              0.001919          0.017040          0.1126124        0.04        0.96              0.001914          0.016869          0.113472Optimal portfolio details :     Weights_A  Weights_B    Portfolio Return  Portfolio Std Dev  Sharpe Ratio51        0.51        0.49         0.001692            0.01148      0.147348我需要的是這樣的聲明:The best allocation is 0.51 of A and 0.49 of B.但是,下面的代碼沒有按預期工作。print('The best allocation is ', weighted_A == efficient_df['Sharpe Ratio'].max(), 'of A and ', weighted_B == efficient_df['Sharpe Ratio'].max(), ' of B.')結果The best allocation is  False of A and False of B.
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

您只是打印布爾值而不是實際值。

(假設只有一行具有最大“Srape Ratio”)

sharpe_highest = efficient_df[efficient_df['Sharpe Ratio'] == efficient_df['Sharpe Ratio'].max()]

然后簡單地打?。?/p>

print('The best allocation is ', float(sharpe_highest.weighted_A), 'of A and ', float(sharpe_highest.weighted_B), ' of B.')



查看完整回答
反對 回復 2023-05-23
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

你得到布爾值(False 和 True)而不是你想要的浮點數,因為你使用“==”,它必然返回一個布爾值。除非我誤解了,否則你不能使用“==”來獲得你想要的輸出。

print('The best allocation is ', weighted_GS == eff_portfolio_df['Sharpe Ratio'].max(), 'of GS and ', weighted_FB == eff_portfolio_df['Sharpe Ratio'].max(), ' of FB.')


查看完整回答
反對 回復 2023-05-23
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號