如何将数据帧中的非数字转换为NaN(numpy)?

Bin*_*ian 4 python numpy pandas

例如,有这样一个数据帧:

   a     b
   --------
   10  ...
   4    5
   ...  6
Run Code Online (Sandbox Code Playgroud)

如何将其转换为:

   a    b
   --------
   10  NaN
   4   5
   NaN 6
Run Code Online (Sandbox Code Playgroud)

提前致谢 !

EdC*_*ica 7

你可以做的IIUC

df = df.apply(lambda x: pd.to_numeric(x, errors='coerce') )
Run Code Online (Sandbox Code Playgroud)

这将强制duff值NaN,注意存在NaN会将dtype更改floatNaN无法表示int

In [6]:
df = df.apply(pd.to_numeric, errors='coerce')
df

Out[6]:
      a    b
0  10.0  NaN
1   4.0  5.0
2   NaN  6.0
Run Code Online (Sandbox Code Playgroud)

lambda不是必要的,但它更具可读性IMO