如何在python的数据框中获取打印功能输出

时间:2018-09-30 10:34:34

标签: python dataframe

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的数据框中获取打印输出。

1 个答案:

答案 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