2013-06-21 9 views
127

データフレームのインデックスカラムを配列として取得する方法を知っていますか?私はPandasにインポートしたCSVファイルの「アクセッション」列にアクセッション番号のリストを持っていますが、インポート中にそのインデックスを「アクセッション」列に設定しました。今、「アクセッション」列は後のステップで一連のラベルにする必要がありますが、スタンドアロンで抽出する方法はわかりません。パンダ - データフレームインデックスを配列として取得する方法

答えて

173

あなたがvalues属性を使用する必要があります。

In [1]: df = pd.DataFrame(index=['a', 'b']) 

In [2]: df.index.values 
Out[2]: array(['a', 'b'], dtype=object) 

これは、既にデータが保存されているどのようにアクセスするので、変換の必要はありません。
注:この属性は他の多くのパンダのオブジェクトでも利用できます。パンダ以来

+0

この方法では、インデックスの順序が維持されますか? –

+5

@DonovanThomsonはい! –

47

df.indexを使用してインデックスオブジェクトにアクセスし、df.index.tolist()を使用してリスト内の値を取得できます。

+0

それはinstanceMethodを返し、ないリストの配列 –

+4

@VShreyas、どのようにdf.index.values.tolist '程度の要素でなければなりません

df.index.get_level_values('name_sub_index') 

として、そしてもちろんname_sub_indexのこれを行うことができます) ' – LancelotHolmes

+0

これはうまくいくはずです –

14

0.13あなたもget_valuesを使用することができます。

df.index.get_values() 
+4

これと.valuesに違いはありますか? (バージョン情報を更新したのは、この関数が0.13.0ドキュメントから出てきたからです) –

+0

@Andy Hayden:.get_valuesは、現在の値だけを取得する公式の方法です。たとえば、 index)は、行または列が削除されたインデックス値を返しますか? –

+0

@エゼキエル・クルクリックそれはいつもコピーです?ドキュメントにリンクされているのは非常に軽いですが、私はあなたがそのような冗談を得るとは思っていませんでした(たとえ彼らがMIに入っていても.valuesには含まれません)。 –

24

あなたはマルチインデックスデータフレームを扱っている場合、あなたはマルチインデックスの1名の列のみを抽出するに興味があるかもしれません。あなたは(FrozenListdf.index.names

関連する問題