この記事では、pandas DataFrameオブジェクトのインデックスや行を取得するための様々な方法について説明します。
では、さっそく始めましょう。
Pythonでデータフレームのインデックスを取得するメソッド
それでは早速、データフレームのインデックスを取得する手順を説明します。
また、データフレームのインデックスをリセットして、データフレームを追加したり、ソートしたりするたびに、インデックスの数字が揃うようにする方法も確認してください。
方法1:forループを使用する
Pythonでは、forループを使うことで、pandas DataFrameオブジェクトのインデックスや行を簡単に取得することができます。
この方法では、Pythonのpandasモジュールの pd.DataFrame()
関数を使用して、Pythonの辞書からpandas DataFrameオブジェクトを作成します。
そして、pandas DataFrameのインデックスオブジェクトに対してforループを実行し、インデックスを表示します。
それでは、Pythonのコードで実装してみましょう。
# Method-1 # Import pandas import pandas as pd
# Create a Python dictionary data = { "Name" : [ 'Sanjay' , 'Shreya' , 'Raju' , 'Gopal' , 'Ravi' ],
"Roll" : [ 101 , 102 , 103 , 104 , 105 ]}
# Create a DataFrame object from above dictionary df = 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 iteration print ( " )
for idx in df.index:
print (idx, end = ' ' )
|
結果は以下の通りです。
This is DataFrame: Name Roll
1 Sanjay 101 2 Shreya 102 3 Raju 103 4 Gopal 104 5 Ravi 105 This 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 pandas import pandas as pd
# Create a Python dictionary data = { "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 dictionary df = 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 attribute print ( " )
index_list = df.index
print (index_list)
|
結果は以下の通りです。
This is DataFrame: Name Roll CGPA
s1 Sanjay 101 8.15 s2 Shreya 102 8.18 s3 Raju 103 9.32 s4 Gopal 104 8.85 s5 Ravi 105 7.87 This 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 pandas import pandas as pd
# Create a Python dictionary data = { "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 dictionary df = pd.DataFrame(data)
print ( "This is DataFrame: )
print (df)
# Get the index/rows of the above DataFrame # Using index.values property print ( " )
index_list = df.index.values
print (index_list)
|
結果は以下の通りです。
This is DataFrame: Name Roll Branch CGPA
0 Sanjay 101 ECE 8.15 1 Shreya 102 CSE 8.18 2 Raju 103 EEE 9.32 3 Gopal 104 ICE 8.85 4 Ravi 105 IPE 7.87 This 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 pandas import pandas as pd
# Create a Python dictionary data = { "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 dictionary df = 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() function print ( " )
index_list = df.index.tolist()
print (index_list)
|
結果は以下の通りです。
This is DataFrame: Name Roll Branch CGPA
R1 Sanjay 101 ECE 8.15 R2 Shreya 102 CSE 8.18 R3 Raju 103 EEE 9.32 R4 Gopal 104 ICE 8.85 R5 Ravi 105 IPE 7.87 This 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 pandas import pandas as pd
# Create a Python dictionary data = { "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 dictionary df = 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() functions print ( " )
index_list = df.query( "CGPA > 8.5" ).index.tolist()
print (index_list)
|
結果は以下の通りです。
This is DataFrame: Name Roll Branch CGPA
I Sanjay 101 ECE 8.15 II Shreya 102 CSE 9.32 III Raju 103 EEE 8.78 IV Gopal 104 ICE 7.87 V Ravi 105 IPE 8.85 This is index of DataFrame: ['II', 'III', 'V'] |
まとめ
この記事では、DataFrame オブジェクトのインデックスを取得するための 4 つの異なるメソッドを学びました。
このチュートリアルで、DataFrameオブジェクトのインデックスを取得する4つの異なるメソッドを学びました。
このようなPythonのチュートリアルをもっと見るために私たちと一緒にいてください。