Pythonでこんな悩みはありませんか?
「Pandas DataFrameで行名・列名を指定してデータを抽出したい」
「Pandas DataFrameで行番号・列番号を指定してデータを抽出したい」
こんなお悩みを解決します。
今回の記事では、pythonのloc、ilocを使ってデータを抽出する方法ついて解説していきます。
pythonを活用したデータサイエンスでは、データを抽出する作業は頻繁に実施しますので、是非本記事で使い方を理解してほしいです❗️
今回は下記データ(Pandas DataFrame(以下df))を基に解説していきます。
まずはpythonの『loc』の使い方から説明します。
pythonの「loc」の使い方
pythonの「loc」を活用することで、行名・列名でデータを抽出できます。
基本の使い方は下記。
df.loc[行名, 列名]
例えば、dfの行名「3行目」、列名「’Name’」のデータを抽出する場合は、下記のようなコードで実行できます。
df.loc[3, 'Name']
<注意>pandasDataFrameで、行名が指定されていない場合は、0からの連番が割り振られ、行番号と行名が同じになります。そのためlocを使って指定する際の行名が数字になっています。
locメソッドではスライス「:」を使用して範囲指定して使用する使い方が頻出
例えば2〜4行目、’Age’〜height’までのデータを抽出する場合は、下記コードで実行できます。
df.loc[2:4 , 'Age':'height']
locでスライス「:」を使ってデータを指定するのは頻出なので、ぜひ使い方を理解しておいてください。
続いてpythonの『iloc』の使い方を解説します。
pythonの「iloc」の使い方
pythonのilocを活用することで、行番号・列番号でデータを指定できます。
下記のような感じ。
df.iloc[行番号, 列番号]
例えば、行番号「1」、列番号「0」のデータを抽出する場合は、下記のようなコードで実行できます。
df.iloc[1, 0]
ilocメソッドでもスライス「:」を使用して範囲指定して使用する使い方が頻出
例えば、1〜2行目、0列目から1列目までのデータを抽出する場合は、下記コードで実行できます。
df.iloc[1:3, 0:2]
pythonのilocで、スライス「:」を使用してデータを指定することは頻出ですので是非使い方を理解してください。
今回は以上です。
今回はpythonのPandas DataFrameでloc、ilocを活用して、データを指定して抽出する方法を解説しました。
少しでも皆さんのお役に立てれば幸いです。
✅下記記事にてPandasのメソッドの使い方をまとめていますので是非ご覧ください。
✅ 機械学習・pythonの「勉強」について知りたい人は下記記事もお勧め
仕事で活用するための機械学習、pythonの「勉強」について解説しています。
機械学習の独学は勉強することが多く、特に挫折しがちです。。
機械学習を完全独学した私が、「社会で使える機械学習スキル」を最短で得るための勉強・勉強法について書いていますので是非読んで見てください。
皆さんの機械学習の勉強がさらに進み、理解が深まることを願っています。