2016-04-12 81 views
1

我已經開始與熊貓一起工作,並且在選擇具有多維索引的矩陣行時遇到了很多麻煩。通過標籤訪問多索引數據幀

我呼籲imploc以下數據框:

In [197]: imploc 
Out[197]: 
            TotProd  TotDem  ProdCost   Price MinRes  MaxRes  Adjust 
Sector  Zone                          
1 BasicEmp 1 Downtown  5000.000000  0.000000 13272.885111 13272.885111  0.0 8.999999e+09 0.000000 
      2 Harlem Distri 800.000000  0.000000 11664.924939 11664.924939  0.0 8.999999e+09 0.000000 
      3 Beverly Garde 1100.000000  0.000000 11774.847614 11774.847614  0.0 8.999999e+09 0.000000 
2 ServEmp 1 Downtown  3499.999329 711.295166 12872.998776 12872.998776  0.0 8.999999e+09 -50.116985 
      2 Harlem Distri 699.999855 2024.319580 11448.578071 11448.578071  0.0 8.999999e+09 -47.460030 
      3 Beverly Garde 899.999870 2364.384277 11308.782766 11308.782766  0.0 8.999999e+09 -45.067730 
3 LowInc 1 Downtown  4000.000107 15627.176758 2575.848432 2575.848432  0.0 8.999999e+09 -47.760773 
      2 Harlem Distri 12999.999146 2725.641602 2302.787325 2302.787325  0.0 8.999999e+09 -62.273769 
      3 Beverly Garde 4999.998932 3647.179932 2501.744127 2501.744127  0.0 8.999999e+09 -62.095543 
4 HighInc 1 Downtown  1500.000504 11310.782227 3697.571092 3697.571092  0.0 8.999999e+09 -44.726818 
      2 Harlem Distri 3000.000977 2012.531128 3156.683334 3156.683334  0.0 8.999999e+09 -61.458027 
      3 Beverly Garde 11500.003662 2676.691895 3512.280696 3512.280696  0.0 8.999999e+09 -57.550457 
5 Land  1 Downtown   65.999985  65.999985 250000.000000 250000.000000 66.0 6.600000e+01 -8.102549 
      2 Harlem Distri 109.999794 109.999794 120000.000000 120000.000000 110.0 1.100000e+02 -23.183863 
      3 Beverly Garde 127.999893 127.999893 180000.000000 180000.000000 128.0 1.280000e+02 -22.268484 

當我們看的指數,我們有以下幾點:

In [198]:imploc.index 
Out[198]: 
MultiIndex(levels=[[u' 1 BasicEmp', u' 2 ServEmp', u' 3 LowInc', u' 4 HighInc', u' 5 Land'], [u' 1 Downtown', u' 2 Harlem Distri', u' 3 Beverly Garde']], 
      labels=[[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]], 
      names=[u'Sector', u'Zone']) 

然後,我有一個2級多指標,我會愛有權訪問,我的意思是:外部索引[u' 1 BasicEmp', u' 2 ServEmp', u' 3 LowInc', u' 4 HighInc', u' 5 Land']應等於[0,1,2,3,4],內部索引['u' 1 Downtown', u' 2 Harlem Distri', u' 3 Beverly Garde'應等於[0,1,2]

我的問題是,有沒有辦法恢復行'['3 LowInc','2 Harlem Distri']',但使用編號索引,作爲numpy。 .ix方法的索引從0到14,而不是二維索引。

我喜歡做的事:的

>>imploc[2,1] 
>>12999.999146 2725.641602 2302.787325 2302.787325  0.0 8.999999e+09 -62.273769 

代替:

In [199]:imploc.ix[7] 
Out[199]: 
TotProd  1.300000e+04 
TotDem  2.725642e+03 
ProdCost 2.302787e+03 
Price  2.302787e+03 
MinRes  0.000000e+00 
MaxRes  8.999999e+09 
Adjust  -6.227377e+01 
Name: (3 LowInc, 2 Harlem Distri), dtype: float6 

回答

0

您可以訪問一個多指標排樣imploc[(' 3 LowInc', ' 2 Harlem Distri')]

+0

是的,這就是我想做的事,但整數。我認爲唯一的答案是改變整數的索引。 – tcapelle