Pandasのmethod で使うパラメーターと引数について　no.4 

![見出しを追加 (17).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/beffda62-b2ec-ba84-20bb-a72e3559f0e7.png)


こんにちは、まゆみです。

[前回の記事](https://qiita.com/Mayumi_Pythonista/items/de566a5a70d238da42da)では、Pandasライブラリーを使ってSeries にしたデータにmethod(メソッド)を使う例を書かせていただきました。

Pythonを勉強された方なら <font color="Red">method(メソッド) や関数は引数を取ることができること</font>を知っていると思います。


<font color="OrangeRed">引数とか、パラメーターとか相互に交換可能の用語のように使われているけど意味は同じなの？？</font>

今回の記事では、あの()のなかに入れるやつの正体(引数なのかパラメーターなのか)を語っていきます



今回の記事では

<ul>
<li>パラメーターと引数の違いについて</li>
<li>位置指定引数とキーワード引数の違いについて</li>


</ul>

を書いていこうと思います

ではさっそく始めていきますね


#パラメーターと引数の違い
![method( a, b ) (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/f5f7d88d-9c2f-31a4-d2c1-79bed6e1e14d.png)


パラメーターと引数の違いを関数を用いて説明します

例えば上記の関数が消費税を計算するものだったとします

『a』には商品の価格が入ります。
関数を呼び出す時 (a) の部分は色んな数字が入りますよね。

a　自体が表す値は変化するものなのです。

100円の消費税を計算するときは

a　には100が入りますし

150円の消費税を計算するときは

150が入ります


その時<font color="Red">a に実際に代入する100や150のことを引数</font>と言い


<font color="Red">a 自体をパラメーター</font>と言います

![見出しを追加 (18).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/7b682132-0098-4fa0-6616-c70a784a1a39.png)

パラメーターは物差しのようなもので、引数は実際にその物差しで測った数値そのものとも言えると思います。

パラメーターは『測る基準』で引数は『その値』です。

例えば、下記のようなパラメーターと引数をもつ関数を作った事もあるのではないでしょうか？


| パラメーター  |  引数  |
|:----------:|:----:|
|ゲームのレベル|1～10|
|音のボリューム|大・中・小|
|体重|1～150(?)


#位置指定引数(positional argument)とキーワード引数(keyword argument)について

次に

>位置指定引数

>キーワード引数

について説明していきます

##位置指定引数とは？
![def function ( name= , gender= )_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/f285a0e4-075c-0c3d-a8dc-34afa4bd7a28.png)

上記の関数を用いて説明します。

位置指定引数とは

>1番目に書かれたパラメーターの引数は必ず1番目に書き

>2番目に書かれたパラメーターの引数は2番目に書く

と言ったように<font color="Red">書く順番が極めて大事になります</font>

上記の関数の例で言いますと、２つの関数の呼び出し結果は変わるか、もしくは場合によってはエラーが出ます。

なぜならば、2つ目の関数の呼び出しでは　"female"が　"name" で、"Mayumi" が"gender" と認識されてしまうからです。

##キーワード引数とは？

![見出しを追加 (19).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/45bba53b-e7ec-3c8a-10e5-5952f870a4e0.png)

上記の関数を用いて説明します。

パラメーターにname とgender を取ることが明示されていて、かつ、関数を呼び出す時に

name = ○○

gender = ○○

と明示して書けば、<font color="Red">それぞれの引数を書く順番が逆になろうが、同じ実行結果になります。</font>

このように、キーワードを明示して書く引数を

 <font color="Red">キーワード引数</font>

と言います。


#Pandas のSeries のパラメーターはどうなっているの？

では話をpandasに戻しますね。

PandasのSeries がどのようなパラメーターを取れるのか見てみましょう

<font color="Red">Shift + Tab</font>

 で下記のようにドキュメントの抜粋を見ることができます

![スクリーンショット 2021-03-13 070221.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/49bab02f-c0a5-9006-bc84-b55b9932e00e.jpeg)

pandas のSeries はパラメーターに『data』『index』『dtype』... などが使えるようです。



##実際の実行結果

###位置指定引数

ドキュメントではSeries は　data, index....という順番で書かれているので、何も明示せずにSeriesを呼び出してみます(呼び出す時の引数を書く順番は重要)

![スクリーンショット 2021-03-13 080152.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/d22cd891-a2cb-2249-90a7-841f6980ea0d.jpeg)

2番目に書いた引数がindex に、1番目に書いた引数がdata として認識されています

###キーワード引数

では、次にパラメーターを明示して書くキーワード引数でSeries を呼び出してみます。

キーワード引数では書く順番は重要ではなく、キーワードを明示する事が重要でしたよね。

ですので、あえてドキュメントで説明されているのとは逆の順番で、

①index

②data

の順番で呼び出してみました。

![スクリーンショット 2021-03-13 080433.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/97a4d270-b4ab-8987-fbdc-c1f7b74c8c2e.jpeg)


data の引数の値は○○　(data= ○○)
index の引数の値は○○　(index = ○○)

と明示して書くので

data を先に書こうが、index を先に書こうが実行結果は同じになります

#まとめ

今回の記事では、Pandasだけに限らずPythonでコードを書く時にも大事になることを書かせていただきました。

次回の記事では、またPandas に特化した内容を書かせていただきます！