我已经开始使用Pandas了,我在选择具有多维索引的矩阵行时遇到了很多麻烦。
我有以下Dataframe名为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 :(得分:0)
您可以访问多个索引行,例如imploc[(' 3 LowInc', ' 2 Harlem Distri')]