数据框中切片和旋转,然后到多个dataframs

问题描述:

最后,我想下面数据框中切片和旋转,然后到多个dataframs

我在表单数据运行库存数据的参数VAR:

 Date  Symbol  ClosingPrice Weight 
0 7/22/2016  A   46.58   0.000002 
1 7/25/2016  A   46.14   0.000002 
2 7/26/2016  A   46.95   0.000002 
3 7/27/2016  A   47.26   0.000002 
4 7/28/2016  A   47.51   0.000002 
5 7/22/2016  AA   10.57   0.000287 
6 7/25/2016  AA   10.49   0.000287 
7 7/26/2016  AA   10.67   0.000287 
8 7/27/2016  AA   10.74   0.000287 
9 7/28/2016  AA   10.68   0.000287 
10 7/22/2016 AAAP   30.51   0.000003 
11 7/25/2016 AAAP   31.02   0.000003 
12 7/26/2016 AAAP   30.85   0.000003 
13 7/27/2016 AAAP   30.97   0.000003 
14 7/28/2016 AAAP   31.00   0.000003 

我想创建2个独立的dataframes为例如:

date   A  AA  AAAP 
7/22/2016 46.58 10.57 30.51 
7/25/2016 46.14 10.49 31.02 
7/26/2016 46.95 10.67 30.85 
7/27/2016 47.26 10.74 30.97 
7/28/2016 47.51 10.68 31 

与符号列标题

Symbol Weight 
A   0.00000166 
AA  0.00028664 
AAAP  0.00000326 

第一数据帧将被用于计算方差/协方差矩阵和第二数据帧表示在股票投资组合的每个安全(在参数VAR计算的参数)

要的权重拿到第一个表,你可以转动你的原始数据帧从长期改造它以宽幅的前三列:

import pandas as pd 
df.iloc[:,0:3].pivot('Date', 'Symbol', 'ClosingPrice') 

# Symbol  A  AA AAAP 
#  Date   
#7/22/2016 46.58 10.57 30.51 
#7/25/2016 46.14 10.49 31.02 
#7/26/2016 46.95 10.67 30.85 
#7/27/2016 47.26 10.74 30.97 
#7/28/2016 47.51 10.68 31.00 

第二个表是第二和第四列的唯一值,所以选择它们和drop_duplicates应该是OK:

df.iloc[:,[1,3]].drop_duplicates() 

#  Symbol  Weight 
#0   A 0.000002 
#5   AA 0.000287 
#10  AAAP 0.000003 
+0

伟大的工作,但我如何从数据显示 – John

+0

删除0,5,10这些都是数据帧的索引。不完全确定你需要什么,试试'df.iloc [:,[1,3]]。drop_duplicates()。reset_index(drop = True)'或'df.iloc [:,[1,3]]。drop_duplicates ).set_index('Symbol')'看看它们是不是你正在寻找的东西。 – Psidom

+0

完美,再次感谢! – John