Кадр данных Pandas изменяет значения с плавающей точкой, когда read_excel

1

Привет, у меня есть ситуация в руке,

У меня есть excel, один столбец которого содержит следующее:

    DOUBLE_FI_EXC_RETURN
      0.21
     -0.52
     -0.28
     -0.01
      0.45
      0.24
     -1.12
     -0.14

Теперь, когда я делаю df.read_excel(), он возвращает этот фрейм данных:

DOUBLE_FI_EXC_RETURN
 0.214307422
-0.517325534
-0.28279697
-0.005493749
 0.452745819
 0.238851397
-1.116148896
-0.141628643

Я думаю, что это дает мне точное значение, но мне нужны одни и те же значения от excel. Как мне их получить?

  • 0
    По accurate value я думаю, что это дает вам точное значение, которое хранится в ячейке. Скорее всего, у вас есть опция форматирования, указанная в Excel, чтобы отображать только 2 десятичных знака, хотя ячейка содержит точное значение. Если это для отображения, то хорошо, отформатируйте. Но если вы делаете вычисления, вы, вероятно, не хотите округлять, так как ошибка будет распространяться через ваши вычисления.
Теги:
pandas
dataframe
jupyter-notebook

2 ответа

1
Лучший ответ

Вам нужно округлить значения после 2 исправлений, если вы действительно этого хотите. В Excel могут отображаться значения, округленные, но pandas может фиксировать точные значения с правильной точностью. Если вы действительно хотите округлить значения, вы можете сделать это:

import pandas as pd
df=pd.DataFrame({'DOUBLE_FI_EXC_RETURN':[0.214307422,
                                         -0.517325534,
                                         -0.28279697,
                                         -0.005493749,
                                          0.452745819,
                                          0.238851397,
                                         -1.116148896,
                                         -0.141628643,]})
df.DOUBLE_FI_EXC_RETURN.apply(lambda x:round(x,2))

Или используя numpy

np.round(df.DOUBLE_FI_EXC_RETURN, 2)
  • 1
    о, я заметил, что это было на самом деле форматирование Excel сделано фактические значения одинаковы, спасибо
-1

Вы можете использовать round если хотите уменьшить точность

round(DOUBLE_FI_EXC_RETURN, 2)
  • 0
    Это даст DOUBLE_FI_EXC_RETURN не определенным
  • 0
    Это сработало для меня, но ваши решения, вероятно, гораздо более эффективны

Ещё вопросы

Сообщество Overcoder
Наверх
Меню