Преобразовать Pandas DF чисел с плавающей точкой в ​​Str, оставить конечные нули - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь преобразовать DataFrame из чисел с плавающей запятой в строки, сохраняя конечные нули в сотой десятичной запятой. Вот моя функция:

def df_formatter(df):

    cols = df.columns

    for x in cols:
        for index,cell in enumerate(df[x]):
            df.loc[:,x][index] = str('{:.2f}'.format(Decimal(df[x][index])))

    return df

Проблема в том, что мой фрейм данных все еще находится в формате с плавающей запятой даже после применения функции. когда я применяю метод .astype (str) для преобразования в строки, я теряю сотую десятичную точку, если эта сотая десятичная дробь равна 0. Например, 0.00 -> 0.0 или 0.50 -> 0.5. Это данные о валюте и процентах, поэтому важно сохранить конечные нули.

В чем моя проблема?

1 Ответ

2 голосов
/ 29 мая 2020

Не уверен, правильно ли я понял, но думаю, что это решение:

df = pd.DataFrame({'floats': [0.5, 0.66, 0.]})

df['floats'] = df['floats'].apply(lambda x: "{:.2f}".format(x))
print(df)

>>>
  floats
0   0.50
1   0.66
2   0.00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...