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

slice
こつこつ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

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト