невозможно преобразовать float в int в пандах - PullRequest
0 голосов
/ 15 ноября 2018

Я хочу преобразовать столбец со значениями -1.0, 0.0 и Nans в int.Я пробовал и pd.tonumeric, а также myCol.astype

myCol = pd.to_numeric(myCol,downcast='signed', errors = 'coerce')
myCol.astype(np.int64, errors= 'ignore')

Ни один из этих подходов не работает.Желаемый вход и выход

input: myCol = pd.Series([np.nan, 0.0, -1.0, 0.0, 0.0, 2.0])
output: Nan, 0, -1, 0, 0, 2

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Вы можете попробовать создать строки:

myCol.astype(str).str.split('.', expand=True)[0].tolist()

Вывод:

['nan', '0', '-1', '0', '0', '2']
0 голосов
/ 15 ноября 2018

К сожалению, NaN является числом с плавающей запятой само по себе (пожалуйста, проверьте стандарт IEEE 754 с плавающей запятой). Поэтому, если вы не отбросите строки с помощью NaN, ваше преобразование в int всегда будет неудачным!

Ваш подход использования astype в противном случае верен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...