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

时间:2017-03-27 14:55:20

标签: python pandas numpy

例如,有这样的数据框:

   a     b
   --------
   10  ...
   4    5
   ...  6

如何将其转换为:

   a    b
   --------
   10  NaN
   4   5
   NaN 6

提前致谢!

2 个答案:

答案 0 :(得分:6)

你可以做的IIUC

    String url_s = "https://urweb.com/insert.php?name="+URLEncoder.encode(name,"UTF-8");
            URL url = new URL(url_s);

这会将duff值强制为df = df.apply(lambda x: pd.to_numeric(x, errors='coerce') ) ,请注意NaN的存在会将dtype更改为NaN,因为float无法由NaN表示}

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 不是必需的,但它更具可读性IMO

答案 1 :(得分:4)

您还可以stack然后unstack数据框

pd.to_numeric(df.stack(), errors='coerce').unstack()

      a    b
0  10.0  NaN
1   4.0  5.0
2   NaN  6.0