Удалите научную запись из столбца панд, содержащего как строку, так и число с плавающей точкой - PullRequest
0 голосов
/ 13 июня 2018

Я не могу удалить научную запись из столбца, содержащего как строковые, так и не строковые записи.

Когда я импортирую набор данных с использованием read_csv, один из столбцов показывает следующее:

0           1.9157E+11
11          1.9157E+11
12          1.9157E+11
13          1.9157E+11
14          1.9157E+11
         ...      
37444    19156794-1005
37445    19156794-1004
37446      19156791023
37447    19156794-1003
37448    19156794-1003

Хотя все записи кодируются в виде строк, некоторые строки содержат только цифры (следовательно, они преобразуются в научную запись), а некоторые строки содержат «-» (следовательно, они отображаются правильно).

Когда я печатаю dataframe['column'][11], я получаю '1.9157E+11', что является строкой.

Я не могу использовать apply(float) для всего столбца, потому что некоторые записи содержат '-', и, следовательно, не может быть преобразован в строку.

Был также этот вопрос , который также задавался, но ОП столкнулся с той же проблемой (см. комментарии под решением), и решение не было достигнуто.

1 Ответ

0 голосов
/ 13 июня 2018

Вы можете использовать следующий код, если вам нужно преобразовать все конвертируемые значения и оставить другие как есть:

def try_float(x):
    try:
        return float(x)
    except ValueError as e:
        return x

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