Python

Python基礎:関数処理

スポンサーリンク

はじめに

今回はpandasのオブジェクトに対して関数を適用する方法について扱います。シリーズやデータフレームに対して、関数を適用したいことがありますよね。

pandasのシリーズとデータフレームはNumpyの関数を直接適用することが鹿野です。これ以外に自作の関数などを適用するようなときには、pplyメソッドが用意が便利です。

サンプルデータの作成

val=np.random.randint(-100,100,size=9).reshape(3,3)
df=pd.DataFrame(val,index=list('def'),columns=list('abc'))
df

applyメソッド

まずは平均値を求めてみましょう。次のようにします。

df.apply('mean')

applyメソッドにはaxis引数が用意されています。初期値は0なので今回は列方向の平均が算出されました。行方向に関数を適用したい場合はaxis=1を指定します。

df.apply(np.sum,axis=1)

mean関数やsum関数は任意の方向で集約された値がシリーズとして戻ります。よって、applyメソッドの戻りもシリーズでした。applyメソッドへ指定する関数の戻しがデータフレームの場合は、applyメソッドの戻しもデータフレームとなります。

現場で使える! PANDASデータ前処理入門 機械学習・データサイエンスで役立つ前処理手法
df.apply(lambda x:x+2)

aggメソッド

applyメソッドと類似したメソッドとして、データフレームとシリーズにはaggメソッドがあります。1つの関数を適用する場合はapplyメソッドと同等ですが、aggメソッドは複数の関数を適用することに適しています。

df.agg(['max','min'])

aggメソッドへ{カラムラベル:関数}のようなディクショナリを指定することで、異なる関数を違うカラムごとに適用することが可能です。

df.agg({'a':['min','max'],'b':'sum'})

applymapメソッド

データフレームの各要素毎に処理をおこなう関数を適用する場合はapplymapメソッドを使います。

df.applymap(lambda x:True if x >0 else False)

データフレームの各要素に関数を適用するので、結果もデータフレームになります。

スポンサーリンク

まとめ

今回はデータフレームに関数を適用すると方法を扱いました。データ分析をしていると、データフレームに関数を適用したいケースがよくあります。しっかり復習しておきましょう。

コメント

タイトルとURLをコピーしました