Как только возвращать числа в столбце в фрейме данных python [duplicate]

Было опубликовано много хороших ответов, но я хотел бы добавить еще один.

Не все числа могут быть представлены с помощью float / double. Например, будет представлено число «0,2» как «0.200000003» в одинарной точности в стандарте по плавающей точке IEEE754.

Модель для хранения действительных чисел под капотом представляет собой число с плавающей запятой в качестве

Хотя вы можете легко ввести 0.2, FLT_RADIX и DBL_RADIX равно 2; не 10 для компьютера с FPU, который использует «Стандарт IEEE для двоичной арифметики с плавающей запятой (ISO / IEEE Std 754-1985)».

. Точно так же трудно точно представлять такие числа. Даже если вы укажете эту переменную явно без какого-либо промежуточного вычисления.

7
задан user5739619 13 February 2016 в 06:16
поделиться

3 ответа

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

df['B'].str.extract('(\d+)').astype(int)
32
ответ дан Lokesh A. R. 24 August 2018 в 23:25
поделиться

Я написал небольшой цикл, чтобы сделать это, поскольку у меня не было строк в DataFrame, но в списке. Таким образом, вы также можете добавить инструкцию little для оператора float:

output= ''
input = 'whatever.007'  

for letter in input :
        try :
            int(letter)
            output += letter

        except ValueError :
                pass

        if letter == '.' :
            output += letter

output = float (output)

или вы можете использовать int (output), если хотите.

0
ответ дан boesjes 24 August 2018 в 23:25
поделиться

Предполагая, что всегда существует ровно одна ведущая буква

df['B'] = df['B'].str[1:].astype(int)
1
ответ дан Mike Graham 24 August 2018 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: