2017-06-20 5 views
3

パンダでは、デフォルトの整数ベースのインデックスを、set_index()を使用して任意の数の列で構成されるインデックスに置き換えることができます。Pandasの通常の列ではなくカスタムインデックスを使用する場合

私が混乱しているのはで、としたいと思っています。系列が列であるかインデックスの一部であるかにかかわらず、列の場合はboolean indexing、行の場合はxs()を使用して系列の値をフィルタリングできます。 sort_values()またはsort_index()のいずれかを使用して列またはインデックスを並べ替えることができます。

私が遭遇した唯一の違いは、重複する値があるとインデックスに問題があることです。そのため、インデックスを使用すると制限があるように見えます。

なぜ、私の列をPandasのインデックスに変換したいのですか?

答えて

2

私の意見では、カスタムインデックスはデータをすばやく選択するのに適しています。

また、インデックスがjoiningデータについて、データの位置合わせのために使用されるaritmetic operationsため、mappingのデータを整列し、最小または群あたりmaximal rows取得するために有用です。

DatetimeIndexは、の場合、resamplingの場合に適しています。

しかし、重複したインデックスは、特にreindexingの場合、問題があります。

Docs

  • 識別データ(すなわちメタデータを提供します)
  • 知ら分析のための重要な指標、可視化、インタラクティブコンソールの表示を使用して、自動と明示的なデータ・アラインメント
  • を有効になって直感的なことができますデータセットのサブセットの設定および

Modern pandas - Indexesdirect linkも確認できます。

+0

いいえ、インデックス文書を参考にしてください。私は段落 – Miguel

+0

に気付かなかったことありがとう。私はときどき使われたものをすべて追加しようとしますが、インデックスを設定する必要があるより多くのサイトがあると思います。 – jezrael

+0

@Miguel - ありがとうございました。 – jezrael

1

0.20.2からは、.unstack()のようないくつかのメソッドはインデックスのみで動作します。

カスタムインデックス、特に時間によるインデックス作成が特に便利です。 DateTimeIndexを必要とする任意の時間間隔(後者はpd.TimeGrouper().groupby()を使用して行われます)での再サンプリングと集計のほかに、.plot()メソッドを列に呼び出すことができます。 df['column'].plot()を呼び出し、すぐに時系列プロットを取得します。

ただし、最も便利なのは、アラインメントです。たとえば、追加するデータが2セットあるとします。一貫してラベル付けされていますが、別の順序でソートされています。ラベルをデータフレームのインデックスに設定した場合は、データフレームの追加だけで済み、データの順序付けは心配しないでください。

関連する問題