Правильный способ округления pandas.DataFrame?

Я хочу круглый pandas.DataFrame.

Вот что я пробовал до сих пор:

import pandas as pd
data = pd.DataFrame([1.4,2.5,3.8,4.4,5.6],[6.2,7.6,8.8,9.1,0])
print(round(data))

Но когда я запускаю этот код, я получаю следующую ошибку:

Traceback (most recent call last):
  File "C:Users*****Documents***************.py", line 3, in <module>
    print(round(data))
TypeError: type DataFrame doesn't define __round__ method

Каков правильный путь к раунду pandas.DataFrame?

python,pandas,rounding,

10

Ответов: 2


14 голосов принято

во-первых, вы можете изменить определение своего фрейма данных, например:

data = pd.DataFrame([[1.4,2.5,3.8,4.4,5.6],[6.2,7.6,8.8,9.1,0]]).T

что приводит к следующему:

     0    1
0  1.4  6.2
1  2.5  7.6
2  3.8  8.8
3  4.4  9.1
4  5.6  0.0

или:

data = pd.DataFrame({'A':[1.4,2.5,3.8,4.4,5.6],'B':[6.2,7.6,8.8,9.1,0]})

так что вы получите два столбца, иначе другой список будет выбран как индекс; тогда:

data.apply(pd.Series.round)

или

import numpy as np
data.apply(np.round)

4

Поскольку pandas 0.17.0 вы можете использовать

DataFrame.round(decimals=0, *args, **kwargs)

Если вы хотите округлить свои данные до двух десятичных знаков, выполните следующие действия:

data.round(2)

подробнее здесь: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.round.html

питон, панды, округляя,