<Python, pandas> lambda + if

lambda式に条件を追加する場合。

例。

In [77]: f = lambda x: str(x).replace('X', '') if type(x) == str else x

という風に書く。
ちなみに、elseを省くと、、、

In [78]: f = lambda x: str(x).replace('X', '') if type(x) == str
  File "<ipython-input-78-05daadfaf1eb>", line 1
    f = lambda x: str(x).replace('X', '') if type(x) == str
                                                           ^
SyntaxError: invalid syntax

げろー。
lambda関数fをやってみる。

In [79]: f('X')
Out[79]: ''

In [80]: f('a')
Out[80]: 'a'

In [81]: f(1)
Out[81]: 1

期待どおり。いいねー。

パンダさんへの応用。

In [84]: df = pd.DataFrame(data=[[1,2,'X'],[4,'X',5]])

In [85]: df
Out[85]: 
   0  1  2
0  1  2  X
1  4  X  5

In [89]: df.applymap(f)
Out[89]: 
   0  1  2
0  1  2   
1  4     5

いいねー。