如何使用分类变量

时间:2018-12-04 09:33:44

标签: python dataframe transpose

我具有以下格式的数据框-

  Index Stock Open
    1    ABC   10
    2    ABC   12
    :     :    :
    1    PQR   12
    2    PQR   23
    :     :    :
    1    XYZ   0.5
    2    XYZ   0.9
    :     :    :

我想使用变量(股票)在数据框上方进行转换,该变量的分类变量如下所示-

   Index    ABC      PQR      XYZ
     1      10       12       0.5
     2      12       23       0.9
     :      :        :         :

注意-可能有多个变量...

请告诉我如何转换或转置上述格式的数据帧。

1 个答案:

答案 0 :(得分:1)

我认为您正在搜索数据透视表:

df.pivot('Index', 'Stock', ['Open', 'Close'])

       Open            Close            
Stock   ABC   PQR  XYZ   ABC   PQR   XYZ
Index                                   
1      10.0  12.0  0.5  13.0  15.0  0.13
2      12.0  23.0  0.9  14.0  16.0  0.14

我使用了一个像这样构造的测试数据框:

s = '''Index Stock Open Close
1    ABC   10   13
2    ABC   12   14
1    PQR   12   15
2    PQR   23   16
1    XYZ   0.5   .13
2    XYZ   0.9   .14'''

df = pd.read_table(StringIO(s), sep='\s+', engine='python')

   Index Stock  Open  Close
0      1   ABC  10.0  13.00
1      2   ABC  12.0  14.00
2      1   PQR  12.0  15.00
3      2   PQR  23.0  16.00
4      1   XYZ   0.5   0.13
5      2   XYZ   0.9   0.14