46968
文字列がある場合には、欠損値np.nanにしたいと考えています。  
現在は、次のようなコードを考えています。

```

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame({'x': [3, 'TV', np.nan]})
    
    #文字列がある場合には、欠損値とする。
    df['x'].applymap(lambda row: np.nan if type(row) is str, axis=1)
    
```

しかし、エラーが出ます。

```

    df['x'].applymap(lambda row: np.nan if type(row) is str, axis=1)
                                                               ^
    SyntaxError: invalid syntax
    
```

xを次のようにしたいのですが、

```

    {'x': [3, np.nan, np.nan]}
    
```

どなたか、ご教示頂けるとありがたいです。
CC BY-SA 4.0
2018-07-25T20:37:22.107
46967
2018-07-25T22:56:14.613
20148
question
python
変数の中に、文字列がある場合には、欠損値とする方法
`df['x']`は、`Series`なので`axis`がないためエラーになっています。`apply`を使うのであれば、以下のようにします。

```

    df['x'] = df['x'].apply(lambda row: np.nan if type(row) is str else row)
    
```

しかし、`to_numeric`を使う方が簡単で高速に処理できます。

```

    df['x'] = pd.to_numeric(df['x'], errors='coerce')
    
```
CC BY-SA 4.0
2018-07-25T22:36:02.820
46968
2018-07-25T22:56:14.613
2018-07-25T22:56:14.613
15171
15171
46967
answer