3

数値インデックスを持つ s を扱ってDataFrameいることがありますが、それをバイパスして、順序に従って行を参照したいと思います。

In [49]: df = pandas.DataFrame(np.random.randn(3, 5))

In [50]: df
Out[50]: 
          0         1         2         3         4
0 -2.426211  0.670384  0.545880 -1.435168  0.675598
1  0.507128  0.478832 -0.159536 -0.696284 -1.112171
2  0.938019 -1.673491 -0.567462  0.381804 -1.280602

In [51]: df[1:2]
Out[51]: 
          0         1         2         3         4
1  0.507128  0.478832 -0.159536 -0.696284 -1.112171

In [52]: df2 = df.ix[1:2]

In [53]: df2
Out[53]: 
          0         1         2         3         4
1  0.507128  0.478832 -0.159536 -0.696284 -1.112171
2  0.938019 -1.673491 -0.567462  0.381804 -1.280602

In [55]: df2.ix[0]
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
...

In [56]: df2.rename(index={1: "one", 2:"two"})
Out[56]: 
            0         1         2         3         4
one  0.507128  0.478832 -0.159536 -0.696284 -1.112171
two  0.938019 -1.673491 -0.567462  0.381804 -1.280602

In [57]: df3 = df2.rename(index={1: "one", 2:"two"})

In [58]: df3.ix[0]
Out[58]: 
0    0.507128
1    0.478832
2   -0.159536
3   -0.696284
4   -1.112171
Name: one

パンダのインデックスをバイパスして、基礎となるマトリックスインデックスにアクセスするにはどうすればよいですか?

4

1 に答える 1

4

DataFrame.irow を使用できます。

In [18]: df2
Out[18]: 
          0         1         2
1  2.279885 -0.414938 -2.230296
2 -0.237980 -0.219556  1.231576

In [19]: df2.irow(0)
Out[19]: 
0    2.279885
1   -0.414938
2   -2.230296
Name: 1

In [20]: df2.irow([0, 1])
Out[20]: 
          0         1         2
1  2.279885 -0.414938 -2.230296
2 -0.237980 -0.219556  1.231576
于 2012-07-11T15:09:16.237 に答える