Pythonでインデックスを指定してデータを抽出する方法です。
使用するのは、Pythonのスライスという操作です。
スライスでは、文字列、リスト、タプル等のシーケンスを、インデックスを指定して抽出することができます。
インデックスの番号は0から始まり、1,2,3と順番に続きます。
まず、文字列で要素の抽出を行ってみましょう。
角括弧でインデックス8を指定して実行します。
8番目にあるPが抽出できました。
str = 'LearningPython'
str[8]
範囲を指定する場合は、開始と終了のインデックスをコロンでつなぎます。
終了のインデックスは、1つ先のインデックスを指定します。
また、このように開始のインデックスが0の場合は省略可能です。
終了のインデックスが最後の要素である場合、こちらも省略可能です。
str[5:8]
str[:8]
str[8:]
次に、リストのデータの抽出を行ってみましょう。
リストも文字列と同様にインデックスを指定して実行します。
指定の要素のみ抽出できました。
l = ['January','February','March','April','May','June','July','August']
l[2:5]
なお、シーケンスだけではなく、データフレームやシリーズでスライスを行うこともできます。
このようなデータフレームを用意します。
import pandas as pd
df = pd.DataFrame( {'name':['A', 'B', 'C', 'D','E'],
'class':['a1', 'a1', 'a1', 'a1','a1'],
'math':[60,70, 80, 90, 100]})
df
先程と同じようにインデックスを指定します。
行方向にデータの抽出ができます。
実行します。
要素の抽出ができました。
df[1:4]
シリーズでも試してみましょう。
このようなシリーズを用意します。
データフレームと同じようにインデックスを指定して実行します。
要素の抽出ができました。
ser = pd.Series(['A', 'B', 'C', 'D', 'E','F'])
ser
ser[3:]
関連メソッド
【毎日Python】Pythonで行名と列名を指定して値を取得する方法|DataFrame.loc
【毎日Python】Pythonでインデックスから行番号、カラムから列番号を取得する方法|pandas.index.get_loc