Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 27, 2016 14:19:41

polinaruru
Зарегистрирован: 2016-03-23
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

float64 - другие типы у cреднего и квантиля в модуле Pandas

Добрый день, товарищи.
Есть вопросик.
Юзаю модуль pandas для сбора статистики.
Есть объект series, который в свою очередь состоит из данных типа float64.

Считаю среднее, квантили и прочую канитель.
После хочу увидеть целые значения.

Потому применяю функцию round()
метод df.round у пандаса почему-то ругается на округление int, что в общем-то логично.

 bmin = df_delta_msec.min()
min = round(bmin)
y = type (min)
print ("Min", min, y)
bmean=df_delta_msec.mean()
mean = round(bmean)
z = type(mean)
print ("Среднее", mean, z)
bmedian=df_delta_msec.median()
median = round(bmedian)
print ("Медиана", median)
bquantile990=df_delta_msec.quantile(.99)
quantile990 = round(bquantile990)
v = type(quantile990)
print ("Квантиль99,0", quantile990, v)
bquantile999=df_delta_msec.quantile(.999)
quantile999 = round (bquantile999)
print ("Квантиль 99,9", quantile999)
bStandardDeviation=df_delta_msec.std()
StandardDeviation = round(bStandardDeviation)
print ("Стандартное отклонение", StandardDeviation)
bmax=df_delta_msec.max()
max = round(bmax)
print ("Макс", max)
quotity=df_delta_msec.count()
print ("Количество", quotity)

Получаю разные типы данных. С минимальным все понятно - ищется само значение. Но почему у среднего тип становится int, а квантиль так и остается float64? Или не остается, а переходит в int, а потом обратно в float64?
Стандартное отклонение тоже int.
На выходе получаю разные типы из массива одного типа:
<class ‘numpy.float64’>
Min 63.0 <class ‘numpy.float64’>
Среднее 728 <class ‘int’>
Медиана 685
Квантиль99,0 1620.0 <class ‘numpy.float64’>
Квантиль 99,9 14831.0
Стандартное отклонение 713
Макс 15727.0
Количество 64085

Есть в этом какой-то сакральный смысл?

Отредактировано polinaruru (Дек. 27, 2016 14:35:01)

Офлайн

#2 Дек. 28, 2016 04:34:45

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

float64 - другие типы у cреднего и квантиля в модуле Pandas

  
>>> n = round(123.0)
>>> n, type(n)
(123, <class 'int'>)
>>> 
>>> n = round(123.0, 1)
>>> n, type(n)
(123.0, <class 'float'>)
>>>

>>> print(round.__doc__)
round(number[, ndigits]) -> number

Round a number to a given precision in decimal digits (default 0 digits).
This returns an int when called with one argument, otherwise the
same type as the number. ndigits may be negative.
>>>



Отредактировано py.user.next (Дек. 28, 2016 04:35:37)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version