Skip to content

Pandasのset_index()の使い方

Updated on

DataFrameはPandasライブラリの中核的なデータ構造であり、Pandasによるデータ分析が革命化されました。DataFrameの重要な特徴の1つは、そのインデックス構造を操作できる能力です。この記事では、Pandasのset_index()関数の使い方について包括的なガイドを提供します。

Pythonで簡単にデータ可視化を作りたいですか?

PyGWalkerは、Jupyter Notebookベースの環境でデータ分析と可視化ワークフローをスピーディーにするために役立つオープンソースPythonプロジェクトです。

PyGWalker (opens in a new tab)は、Pandas Dataframe(またはPolars Dataframe)をビジュアルUIに変換し、変数をドラッグ・アンド・ドロップして簡単にグラフを作成することができます。以下のコードを使用してください。

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

これらのノートブックでPyGWalkerを今すぐ実行できます:

そして、GitHubで⭐️をくれるのをお忘れなく!

Kaggle NotebookでPyGWalkerを実行する (opens in a new tab)Google ColabでPyGWalkerを実行する (opens in a new tab)GitHubでPyGWalkerに⭐️をくれる (opens in a new tab)
Kaggle NotebookでPyGWalkerを実行する (opens in a new tab)Google ColabでPyGWalkerを実行する (opens in a new tab)GitHubでPyGWalkerに⭐️をくれる (opens in a new tab)

Pandas DataFrameにおけるインデックスの理解

DataFrameにおけるインデックスは、行のラベルとして機能します。デフォルトでは、Pandasは0から始まる整数値を行のラベルとして割り当てます。しかし、これらのデフォルトのインデックスが十分ではないシナリオがあり、特定の列または列の組み合わせをDataFrameのインデックスとして設定する必要がある場合があります。

set_index()を使ったインデックスの設定

関数set_index()を使用すると、DataFrameの列をインデックスとして設定できます。基本的な構文は以下の通りです。

DataFrame.set_index('Column_Name')

ここで、'Column_Name'はインデックスとして設定したい列です。

set_index()関数の主なパラメータ

set_index()関数には、ユーザーに柔軟性を提供するいくつかのパラメータがあります。それぞれを理解して深く掘り下げましょう。

  • keys:これは列名、Pandas Series、Index、またはNumPy配列のいずれかです。これがDataFrameの新しいインデックスになります。
  • drop(デフォルト:True):Trueに設定された場合、新しいインデックスとして設定する列は、DataFrameから削除されます。
  • append(デフォルト:False):Trueに設定された場合、新しいインデックスとして設定する列は、既存のインデックスに追加され、マルチインデックスが作成されます。
  • inplace(デフォルト:False):Trueに設定された場合、変更は直接DataFrameで行われ、関数は何も返しません。 Falseに設定された場合、変更が加えられた新しいDataFrameが返されます。
  • verify_integrity(デフォルト:False):重複するインデックスがないかどうかを確認します。新しいインデックス値がユニークであることを確認したい場合に役立ちます。

set_index()の使用例

以下のDataFrame dfがあるとします。

import pandas as pd
 
data = {
    'Name': ['John', 'Anna', 'Peter', 'Linda'],
    'Age': [28, 24, 32, 45],
    'City': ['New York', 'London', 'Berlin', 'Sydney']
}
 
df = pd.DataFrame(data)

'Name'をインデックスとして設定する場合:

df.set_index('Name', inplace=True)

これにより、'Name'列がDataFrameのインデックスに設定され、dropパラメータがTrueであるため、DataFrameから削除されます。

'Name'列をインデックスとして設定し、DataFrameに保持する場合は、次のようにします。

df.reset_index(inplace=True)
df.set_index('Name', drop=False, inplace=True)

'City'を既存の'Name'インデックスに追加してマルチインデックスDataFrameを作成するには、次のようにします。

df.set_index(['Name', 'City'], inplace=True)

注意:新しいインデックスを設定する前に、以前にインデックスを設定した場合は、df.reset_index(inplace=True)を使用してインデックスをリセットする必要がある場合があります。

結論

この記事では、Pandas set_index()を使用して、私たちのニーズに従ってDataFrameのインデックス構造を操作する方法を学びました。主要なパラメーターを理解することにより、インデックスベースの操作を効果的に実行し、データ分析の能力を向上させることができます。Pandasで初心者であろうと、エキスパートであろうと、set_index()を適切に使用することが重要です。今度は、プロジェクトで学んだことを活用する時間です!