2016-12-21 7 views
4

私が持っているシリーズの6番目のアイテムのインデックスを取得しようとしています。pandas.Seriesのi番目のアイテムのインデックスを取得する方法

これはヘッドが、私は通常、(6)およびそこ

から第六インデックスを取得s.headを使用します(ソートされた後、第六国)第六インデックス名を取得するための

United States 1.536434e+13 
China   6.348609e+12 
Japan   5.542208e+12 
Germany   3.493025e+12 
France   2.681725e+12 

どのように見えるかです

s.head(6)は私に

United States  1.536434e+13 
China    6.348609e+12 
Japan    5.542208e+12 
Germany   3.493025e+12 
France   2.681725e+12 
United Kingdom 2.487907e+12 

これを見て、私はイギリスのようにインデックスを取得していますを提供します。

したがって、これ以外のインデックスを取得する方法はありますか。また、データフレームの場合、ソート後にそれぞれの列に基づいて6番目のインデックスを取得する関数があります。

データフレームの場合、通常、インデックスという名前の新しい列を作成し、reset_indexを使用してiloc属性を使用して6番目の値を取得します(リセット後にインデックス内の範囲を使用するため)。

pd.Seriesとpd.DataFrameを使用してこれを行う方法はありますか?

ありがとうございます。

答えて

9

あなたは、それはすべてあなたがbetter考えるかに依存指数

s.index[5] 

それとも

s.index.values[5] 

からまっすぐそれを得ることができます。 numpyのアプローチがおそらくより速くなると私はあなたに伝えることができます。

たとえば、 numpy.argsortは配列を返します。配列の最初の要素は、並べ替える配列の最初の要素の位置です。 argsortの戻り配列の2番目の要素は、ソートされる配列内の要素の位置で、秒でなければなりません。そういうわけで。

これで、ソート後の6番目の項目のインデックス値を取得できます。

s.index.values[s.values.argsort()[5]] 

以上の透過

s.sort_values().index[5] 

以上の創造

s.nsmallest(6).idxmax() 
関連する問題