プログラミングを学ぶ人「loc関数ってどうやって使うの?」
こんな方に向けた記事です。
今回はPythonでデータ分析をする際に必ず必要なloc関数について一緒に勉強していきましょう。
ilocに関してこちらの記事で紹介しているので是非御覧ください。
本記事の学習目標
- データを読み込む。
- loc関数の使い方を理解する。
loc関数の使い方
今回はscikit learnに収録されているIris dataを使って勉強していきましょう。
import pandas as pd import numpy as np from sklearn.datasets import load_iris
まずはIris dataをscikit learnからインポートします。
iris = load_iris() df = pd.DataFrame(data=iris.data, columns=iris.feature_names) df["label"] = [iris.target_names[i] for i in iris.target] df.head()
Iris dataを読み込むことができました。
df.shape
#(150,5)
データの概要を確認します。本データは150列、5行から成っていることがわかります。
loc関数:行や列の名前を使って要素を切り出す。
loc関数は、行と列のラベル名を指定して1つの要素、もしくは範囲を指定して複数の要素を参照することができます。
実際には次のような使い方をします。
・Dataframe.loc["行ラベル名", "列ラベル名"]
このように指定することで指定した行、列の要素が出力されます。
・Dataframe.loc["行ラベル名1", "行ラベル名2",・・・], ["列ラベル名1","列ラベル名2"・・・]
このように複数の行、列を指定することもできます。
それでは先程インポートしたIrisデータを用いて実践してみましょう。
行の取り出し
#1行目を取り出す
df.loc[1]
このように一行目を取り出すことができました。
#行が1、列がseptal widthを取り出す
df.loc[1, 'sepal width (cm)']
#3
一つの要素を指定して出力することが出来ました。
#1〜4行目をまとめて取り出す df.loc[1:4]
列の取り出し
次は列の取り出しを実践してみましょう。
# "sepal length (cm)"列をすべて取り出す
df.loc[:,"sepal length (cm)"]
このようにseptal lengthの列全てを取り出すことができました。
# 行を指定しないとエラーになります。
df.loc["sepal length (cm)"]
列を取り出す場合は必ず行を指定する必要があります。行を指定せずに出力しようとするとエラーになるので注意が必要です。
# "sepal length"、"sepal width"列を0~4列取り出す df.loc[:4,["sepal length (cm)","sepal width (cm)"]]
指定した行、列を自由自在に出力することができます。
さいごに
今回はPythonの基本的なloc関数について一緒に勉強しました。
loc関数:行や列の名前を使って要素を切り出す。
・Dataframe.loc["行ラベル名", "列ラベル名"]
このように指定することで指定した行、列の要素が出力されます。
・Dataframe.loc["行ラベル名1", "行ラベル名2",・・・], ["列ラベル名1","列ラベル名2"・・・]
このように複数の行、列を指定することもできます。
それぞれ概念自体の理解はとっつきにくいと思います。
具体例で実際にイメージしながらじっくりと理解していくのが良いと思います。
機械学習はプログラミング言語のPythonを用いれば、今持っている自分のパソコンですぐに実践することができます。
英語論文になっている手法もしっかりと勉強すれば、自分のパソコンで出来ます。
このサイトでは、プログラミングに興味のある医学生、医師のための情報を発信しております。
プログラミングの学習方法には大きく分けて、「独学」と「プログラミングスクール」の2つがあります。
当サイトでは一貫してプログラミングスクールを利用することをおすすめしています。
なぜなら、独学で勉強した私が非常に苦労したからです。
また私はプログラミングを学習するにあたり、師匠・メンターのような存在がいました。
わからないところは教えてもらっていました。
そのような環境でなければ0から独学で勉強するのはとても効率が悪いと思います。
詳しくは、プログラミングの独学は難しいです【私の失敗談】で紹介しています。
この記事が一人でも多くのプログラミングに興味のある方のお役に立てば幸いです。