Панды: убрать пробелы из столбцов со смешанными значениями типа float - PullRequest
0 голосов
/ 30 августа 2018

У меня есть фрейм данных со смешанными значениями string и float / int в столбце 'k':

>>> 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 голосов
/ 30 августа 2018

Вы можете сделать с mask и to_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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...