Select a multiple-key cross section from a DataFrame

前端 未结 4 1751
青春惊慌失措
青春惊慌失措 2020-12-05 18:38

I have a DataFrame \"df\" with (time,ticker) Multiindex and bid/ask/etc data columns:


                          tod    last     bid      ask      volume
    tim         


        
4条回答
  •  Happy的楠姐
    2020-12-05 18:55

    Convert to a panel, then indexing is direct

    In [20]: df = pd.DataFrame(dict(time = pd.Timestamp('20130102'), 
                                    A = np.random.rand(3), 
                     ticker=['SPY','SLV','GLD'])).set_index(['time','ticker'])
    
    In [21]: df
    Out[21]: 
                              A
    time       ticker          
    2013-01-02 SPY     0.347209
               SLV     0.034832
               GLD     0.280951
    
    In [22]: p = df.to_panel()
    
    In [23]: p
    Out[23]: 
    
    Dimensions: 1 (items) x 1 (major_axis) x 3 (minor_axis)
    Items axis: A to A
    Major_axis axis: 2013-01-02 00:00:00 to 2013-01-02 00:00:00
    Minor_axis axis: GLD to SPY
    
    In [24]: p.ix[:,:,['SPY','GLD']]
    Out[24]: 
    
    Dimensions: 1 (items) x 1 (major_axis) x 2 (minor_axis)
    Items axis: A to A
    Major_axis axis: 2013-01-02 00:00:00 to 2013-01-02 00:00:00
    Minor_axis axis: SPY to GLD
    

提交回复
热议问题