lambda関数をマスターする

なんか便利そうだけど、よく分からないので触れずにいたラムダ関数をマスターすべく、勉強することにする。λを見ると、Half-Lifeしか思い浮かばない。

とっても分かりやすいnoteがあったので、それに従って進めていく。

https://note.com/enkey/n/n6c60800c9b43

spam = lambda x: x + 3
spam(5)

8

うーん。うん。これだとよく分からない。

# ライブラリのインストール
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

# データフレームをつくる
df = pd.DataFrame({
    'id':[1,2,3,4,5],
    'name':['Jeremy', 'Frank', 'Janet', 'Ryan', 'Mary'],
    'age':[20,25,15,10,30],
    'income':[4000,7000,200,0,10000]
    })
df

     id    name  age  income
0   1  Jeremy   20    4000
1   2   Frank   25    7000
2   3   Janet   15     200
3   4    Ryan   10       0
4   5    Mary   30   10000

年齢と収入のデータフレームができた。

# apply関数で使ってみる
df['age'] = df.apply(lambda x: x['age']+30, axis=1)
df

    id	name	age	income
0	1	Jeremy	50	4000
1	2	Frank	55	7000
2	3	Janet	45	200
3	4	Ryan	40	0
4	5	Mary	60	10000

30歳プラスされた。

df['age'] = df['age'] + 30
df

こっちのほうが分かりやすい、が、新しいことを覚えないと前に進まないのだ。

上のラムダ式の場合、データフレームに対してapplyを適用する。下のやり方だとシリーズに対して30を足していくスタイル。下の方法(シリーズに適用)をラムダ式で記述すると、下記のようになる。

df['age'] = df['age'].apply(lambda x: x+3)

applyの用法が若干怪しいので、一度そちらをおさらいする

このサイトの主
投稿を作成しました 115

関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る