returns是一个python数据框,这是头部。这仅是2只股票的每日收益率
fn main() {
use std::process::Command;
let mut x = Command::new("sh");
x.arg("2");
let y = x.output();
println!("status: {:#?}", x);
println!("status: {:#?}", y);
}
我有一个简单的代码,可以计算股票的年度夏普率
功能
date NOW BBY
2013-09-30 NaN NaN
2013-10-01 -0.008855 0.012000
2013-10-02 0.015149 -0.007642
2013-10-03 -0.002296 0.000796
2013-10-04 0.043720 0.012206
这是我打印(sharpe)时的输出
N= 252
sharpe = np.sqrt(N)* returns.mean()/returns.std()
print (sharpe)
我想在数据帧中获取此值,列名称=代码,锐化比率 所以看起来应该是这样
NOW 0.906136
BBY 0.667774
dtype: float64
我想在数据框中获得此信息,因为我还有其他一些打印功能,例如VAr等,因此我可以合并它们,然后将数据框导出到excel。
请帮助我如何在python的数据框中获取打印输出。
答案 0 :(得分:0)
import numpy as np
import pandas as pd
# Construct initial dataframe
df = pd.DataFrame({
'date': ['2013-0-30', '2013-10-01', '2013-10-02', '2013-10-03', '2013-10-04'],
'NOW': [np.nan, -0.008855, 0.015149, -0.002296, 0.043720],
'BBY': [np.nan, 0.012000, -0.007642, 0.000796, 0.012206],
})
df = df.set_index('date')
# Calculate Sharpe ratio
N = 252
sharpe = np.sqrt(N) * df.mean() / df.std()
# Transform Sharpe ratio data from Series to DataFrame
df2 = sharpe.to_frame('Sharpe')
df2.index.name = 'Ticker'
df2 = df2.reset_index()
其结果为:
In [1]: df2
Out[1]:
Ticker Sharpe
0 NOW 8.061887
1 BBY 7.174034