熊猫:从具有混合字符串浮点值的列中去除空格

时间:2018-08-30 16:39:50

标签: python string pandas

我在'k'列中有一个混合了字符串和float / int值的数据框:

>>> df
   a  b  k
0  1  a  q
1  2  b  1
2  3  c  e
3  4  d  r

当我这样做以从所有列中删除所有空格时:

df.apply(lambda x: x.str.strip() if x.dtype == "object" else x)

它将整数1转换为NaN:

   a  b    k
0  1  a    q
1  2  b  NaN
2  3  c    e
3  4  d    r

我该如何克服?

1 个答案:

答案 0 :(得分:1)

您可以使用maskto_numeric,这会将所有非数字值都屏蔽为NaN

df=df.mask(df.apply(pd.to_numeric,errors = 'coerce').isnull(),df.astype(str).apply(lambda x : x.str.strip()))
df
Out[572]: 
   a  b  k
0  1  a  q
1  2  b  1
2  3  c  e
3  4  d  r