В пандах, как я могу преобразовать серию чисел с плавающей точкой или ни одного в строки с целыми - PullRequest
0 голосов
/ 30 августа 2018

Я застрял в серии панд, которая содержит номера документов, но была импортирована как значения float64. Некоторые отсутствуют.

Преобразование серии в строку добавляет «.0» к каждому числу или изменяет номер для электронной записи.

Преобразование в целое число вызывает сообщение об ошибке: ValueError: Невозможно преобразовать NA в целое число

Пример:

s = pd.Series([129944444999999922.0, 1001.0, 1119999999912.0, None])
s.astype('str')

печать

0       1.29944445e+17
1               1001.0
2    1.11999999991e+12
3                  nan
dtype: object

Как я могу преобразовать серию, чтобы показать номер документа как просто номер, без обозначения e + и значения nan в виде пустой строки?

1 Ответ

0 голосов
/ 30 августа 2018

Использование list comprehension:

s1 = pd.Series(['' if pd.isnull(x) else int(x) for x in s], index=s.index)

print (s1.apply(type))
0    <class 'int'>
1    <class 'int'>
2    <class 'int'>
3    <class 'str'>
dtype: object

print (s1.tolist())
[129944444999999920, 1001, 1119999999912, '']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...