Преобразование чисел в строку в столбце DF смешанного типа использует научную нотацию - PullRequest
0 голосов
/ 03 октября 2019

У меня есть фрейм данных со столбцом, который читается со смешанными типами.

df = pd.DataFrame({'mix':['a',6,0.23423,False, 0.000023425]})

Я хочу преобразовать столбец в строки, но когда я делаю это, любые длинные десятичные числа преобразуются в научныенотации. Как сохранить все десятичные дроби в десятичной записи?

df.astype(str)
    mix
0   a
1   6
2   0.23423
3   False
4   2.3425e-11

Желаемый вывод:

    mix
0   a
1   6
2   0.23423
3   False
4   0.000000000023425

1 Ответ

2 голосов
/ 03 октября 2019

Вы можете использовать функцию numpy format_float_positional следующим образом.

import numpy as np

df = pd.DataFrame({'mix':['a',6,0.23423,False, 0.000000000023425]})

def custom_str(x):
    if isinstance(x, float):
        return np.format_float_positional(x)
    return str(x)

df['mix'].apply(custom_str)

Вывод:

0                    a
1                    6
2              0.23423
3                False
4    0.000000000023425
...