目前,我正在将数据框与日期时间字段配合使用,以生成不同报价行情的月度回报系列。
return_series=data.groupby([data['Date'].dt.year,data['Date'].dt.month]).apply(monthly_returns)
当前输出看起来像这样,其中元组值为pnl,大写和返回。
Date Date
2008 6 (-742.58, 150001.16, -0.495049504951)
7 (123142.08, 299304.14, 41.1427920777)
8 (-5963.05, 426217.67, -1.39906212711)
9 (-137316.34, 868529.72, -15.8102062414)
10 (4503.44, 685906.3, 0.656567814)
我想将元组分成三列(Capital,PnL,Returns),然后将Dates列更改为Year,Month。
每月收益函数在给定月份的符号上进行汇总
def month_returns(df_monthly):
symbols_pnl = df_monthly.groupby(df_monthly ['Symbol'])。apply(symbol_return) symbol_invested_capital = df_monthly.groupby(df_monthly ['Symbol'])。apply(symbol_capital)
return(sum(symbols_pnl),sum(symbols_invested_capital),sum(symbols_pnl)/ sum(symbols_invested_capital)* 100)
输入数据每日位置值
日期符号位置上一个位置价格执行价格 6/24/2008 ABC 100 0 5 4.85 2008年6月25日EFG 200150 10 9.8
答案 0 :(得分:0)
可以使用类似的方法将元组拆分为多列
data[['Capital', 'PnL', 'Returns']] = data[column_name_tuple].apply(pd.Series)