【毎日Python】Pythonで文字列やリスト、データフレームからインデックスを指定して値を取得する方法|スライス操作

【毎日Python】Pythonで文字列やリスト、データフレームからインデックスを指定して値を取得する方法|スライス操作

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