この記事では、pandas DataFrameオブジェクトのインデックスや行を取得するための様々な方法について説明します。
では、さっそく始めましょう。
Pythonでデータフレームのインデックスを取得するメソッド
それでは早速、データフレームのインデックスを取得する手順を説明します。
また、データフレームのインデックスをリセットして、データフレームを追加したり、ソートしたりするたびに、インデックスの数字が揃うようにする方法も確認してください。
方法1:forループを使用する
Pythonでは、forループを使うことで、pandas DataFrameオブジェクトのインデックスや行を簡単に取得することができます。
この方法では、Pythonのpandasモジュールの pd.DataFrame() 関数を使用して、Pythonの辞書からpandas DataFrameオブジェクトを作成します。
そして、pandas DataFrameのインデックスオブジェクトに対してforループを実行し、インデックスを表示します。
それでは、Pythonのコードで実装してみましょう。
# Method-1# Import pandasimport pandas as pd
# Create a Python dictionarydata = {"Name": ['Sanjay', 'Shreya', 'Raju', 'Gopal', 'Ravi'],
"Roll": [101, 102, 103, 104, 105]}
# Create a DataFrame object from above dictionarydf = pd.DataFrame(data, index = [1, 2, 3, 4, 5])
print("This is DataFrame:)
print(df)
# Get the index/rows of the above DataFrame # Using for loop iterationprint(")
for idx in df.index:
print(idx, end = ' ')
|
結果は以下の通りです。
This is DataFrame: Name Roll
1 Sanjay 1012 Shreya 1023 Raju 1034 Gopal 1045 Ravi 105This is index of DataFrame:1 2 3 4 5 |
この記事もチェック:PythonのPandasで辞書(dict)からDataFrameを作成する方法
方法2:インデックス属性の使用
DataFrameオブジェクトのインデックスを取得する方法として、最も広く使われている方法です。
この方法では、通常通り pd.DataFrame() 関数を使用して pandas DataFrame オブジェクトを作成します。
そして、pandas DataFrame クラスの index 属性を使用して、pandas DataFrame オブジェクトのインデックスを取得します。
pandas DataFrameオブジェクトに index 属性を適用すると、DataFrameのインデックスリストを含むタプルが返されます。
では、実際にPythonプログラミングでどのように実装するか見てみましょう。
# Method-2# Import pandasimport pandas as pd
# Create a Python dictionarydata = {"Name": ['Sanjay', 'Shreya', 'Raju', 'Gopal', 'Ravi'],
"Roll": [101, 102, 103, 104, 105],
"CGPA": [8.15, 8.18, 9.32, 8.85, 7.87]}
# Create a DataFrame object from above dictionarydf = pd.DataFrame(data, index = ['s1', 's2', 's3', 's4', 's5'])
print("This is DataFrame:)
print(df)
# Get the index/rows of the above DataFrame # Using index attributeprint(")
index_list = df.index
print(index_list)
|
結果は以下の通りです。
This is DataFrame: Name Roll CGPA
s1 Sanjay 101 8.15s2 Shreya 102 8.18s3 Raju 103 9.32s4 Gopal 104 8.85s5 Ravi 105 7.87This is index of DataFrame:Index(['s1', 's2', 's3', 's4', 's5'], dtype='object') |
方法3:index.valuesプロパティを利用する
まず、pandas Pythonモジュールのpd.DataFrame()関数を用いて、pandas DataFrameオブジェクトを作成します。
そして、pandas DataFrameオブジェクトのindex.valuesプロパティを使用して、そのインデックスリストにアクセスします。
pandas DataFrameオブジェクトにindex.valuesプロパティを適用すると、pandas DataFrameオブジェクトのインデックスリストにあるデータを表す配列が返されます。
このDataFrameのインデックスリストを取得する方法を実装するPythonのコードに入りましょう。
# Method-3# Import pandasimport pandas as pd
# Create a Python dictionarydata = {"Name": ['Sanjay', 'Shreya', 'Raju', 'Gopal', 'Ravi'],
"Roll": [101, 102, 103, 104, 105],
"Branch": ['ECE', 'CSE', 'EEE', 'ICE', 'IPE'],
"CGPA": [8.15, 8.18, 9.32, 8.85, 7.87]}
# Create a DataFrame object from above dictionarydf = pd.DataFrame(data)
print("This is DataFrame:)
print(df)
# Get the index/rows of the above DataFrame # Using index.values propertyprint(")
index_list = df.index.values
print(index_list)
|
結果は以下の通りです。
This is DataFrame: Name Roll Branch CGPA
0 Sanjay 101 ECE 8.151 Shreya 102 CSE 8.182 Raju 103 EEE 9.323 Gopal 104 ICE 8.854 Ravi 105 IPE 7.87This is index of DataFrame:[0 1 2 3 4] |
方法4:tolist()関数の使用
これはpandasモジュールの便利なツールで、pandas DataFrameオブジェクトのインデックスをPythonのリストに変換してくれます。
この方法では、これまでの方法と同様に pd.DataFrame() 関数を使用して pandas DataFrame オブジェクトを作成します。
次に、pandas DataFrameクラスの index 属性を使用して、pandas DataFrameのインデックスオブジェクトにアクセスします。
最後に、Pythonのリストの形でDataFrameのインデックスを実際に返すtolist()関数を適用します。
それでは、pandasのDataFrameのインデックスをPythonのリストで取得する便利なメソッドを実装するPythonプログラムを書いてみましょう。
# Method-4# Import pandasimport pandas as pd
# Create a Python dictionarydata = {"Name": ['Sanjay', 'Shreya', 'Raju', 'Gopal', 'Ravi'],
"Roll": [101, 102, 103, 104, 105],
"Branch": ['ECE', 'CSE', 'EEE', 'ICE', 'IPE'],
"CGPA": [8.15, 8.18, 9.32, 8.85, 7.87]}
# Create a DataFrame object from above dictionarydf = pd.DataFrame(data, index = ['R1', 'R2', 'R3', 'R4', 'R5'])
print("This is DataFrame:)
print(df)
# Get the index/rows of the above DataFrame # Using tolist() functionprint(")
index_list = df.index.tolist()
print(index_list)
|
結果は以下の通りです。
This is DataFrame: Name Roll Branch CGPA
R1 Sanjay 101 ECE 8.15R2 Shreya 102 CSE 8.18R3 Raju 103 EEE 9.32R4 Gopal 104 ICE 8.85R5 Ravi 105 IPE 7.87This is index of DataFrame:['R1', 'R2', 'R3', 'R4', 'R5'] |
方法5:query()関数とtolist()関数を使用します。
この方法を使うと、pandas DataFrame オブジェクトの中からある条件を満たす特定のインデックスだけを取得することができます。
この方法では、pd.DataFrame() 関数を用いて pandas DataFrame オブジェクトを作成し、pandas DataFrame クラスの query() 関数を使用します。
DataFrameに query() 関数を適用して条件を渡すと、条件を満たした行だけを含むDataFrameが返されます。
この後、DataFrame クラスの index 属性を適用して、DataFrame のインデックス値を Python のリストとして返す tolist() 関数を使用する予定です。
それでは、この便利なメソッドを実装して、与えられた条件を満たす pandas DataFrame オブジェクトの選択された行やインデックスを取得する Python コードを見てみましょう。
# Method-5# Import pandasimport pandas as pd
# Create a Python dictionarydata = {"Name": ['Sanjay', 'Shreya', 'Raju', 'Gopal', 'Ravi'],
"Roll": [101, 102, 103, 104, 105],
"Branch": ['ECE', 'CSE', 'EEE', 'ICE', 'IPE'],
"CGPA": [8.15, 9.32, 8.78, 7.87, 8.85]}
# Create a DataFrame object from above dictionarydf = pd.DataFrame(data, index = ['I', 'II', 'III', 'IV', 'V'])
print("This is DataFrame:)
print(df)
# Get the index/rows of the above DataFrame# Using query() and tolist() functionsprint(")
index_list = df.query("CGPA > 8.5").index.tolist()
print(index_list)
|
結果は以下の通りです。
This is DataFrame: Name Roll Branch CGPA
I Sanjay 101 ECE 8.15II Shreya 102 CSE 9.32III Raju 103 EEE 8.78IV Gopal 104 ICE 7.87V Ravi 105 IPE 8.85This is index of DataFrame:['II', 'III', 'V'] |
まとめ
この記事では、DataFrame オブジェクトのインデックスを取得するための 4 つの異なるメソッドを学びました。
このチュートリアルで、DataFrameオブジェクトのインデックスを取得する4つの異なるメソッドを学びました。
このようなPythonのチュートリアルをもっと見るために私たちと一緒にいてください。