<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
いいねー。