Функция applymap для Pandas не форматирует числа - PullRequest
0 голосов
/ 21 сентября 2019

Я запускаю это в кодовой лаборатории, чтобы отформатировать строку до 2 десятичных знаков.Однако это не работает.Что не так, пожалуйста?Я нахожусь в Колабе.

Когда я выдаю следующее:

format = lambda x: '%.2f' % x
frame.applymap(format)  # applies to every single entry

Я получаю

            b          d            e
Utah    0.950857    -0.472254   -0.109456
Ohio    -0.738897   0.218620    -0.982334
Texas   0.400049    0.412557    -0.262711
Oregon  1.130821    0.236745    1.921072

Однако, когда я выдаю

frame['e'].map(format)

Возвращает правильный результат.

Utah       0.27
Ohio       1.61
Texas      0.26
Oregon    -0.74
Name: e, dtype: object

Вот мое исполнение.link

1 Ответ

1 голос
/ 21 сентября 2019

Это строки, как вы указали?Если нет, вы всегда можете использовать frame.round(2) на pandas df.

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

for col in frame.columns:
    frame[col] = frame[col].astype(float)
frame = frame.round(2)
...