правильный способ округлить значения в столбце панд - PullRequest
0 голосов
/ 03 июня 2019

Есть много тем, описывающих проблемы Python 3 с округлением, и как решить их до одного значения, но я не смог найти, как округлить значения в панде dataframe.

input:
  A,B
  1.5,2
  1.2,3
  2.5,1

df['A']=df['A'].astype(float).round(decimals=0)
output in python 2:
 A,B
  2,2
  1,3
  3,1
output in python 3:

 A,B
  1,2
  1,3
  2,1

Как добиться результата от Python 2 в Python 3 для колонн панд?

Я пытался преобразовать его в десятичные дроби, но он не работает для панд.

мой обходной путь для этого будет:

df['A']=np.floor(df['A'].astype(float)+0.5)

есть идея получше?

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

лучший способ сделать это для меня в Python 3 будет:

df['A']=np.floor(df['A'].astype(float)+0.5)

В данный момент я не вижу лучшего способа

С уважением

0 голосов
/ 03 июня 2019

вы можете использовать numpy.around для округления вашего фрейма данных в python3.

https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.around.html

вот пример

    import pandas as pd
    import numpy as np

    df = pd.DataFrame([[1.5,2],[1.2,3]])
    print(df)
    >>>      0  1
       0   1.5  2
       1   1.2  3
    df = np.around(df)
    print(df)
    >>>      0  1
       0   2.0  2
       1   1.0  3
...