Среднее геометрическое в DataFramePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Среднее геометрическое в DataFrame

Сообщение Anonymous »

Я пытаюсь получить среднее геометрическое в строках, DataFrame выглядит так:

Код: Выделить всё

               PLTRNSU00013 PLSRBEX00014 PLATTFI00018 PLALMTL00023 PLAMBRA00013   PLAMICA00010 PLAMPLI00019 NL0000474351 PLAPATR00018 PLAPLS000016
2010-07-01          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN
2010-10-01          NaN          NaN          NaN          NaN          NaN          NaN          NaN     0.968237          NaN          NaN
2011-01-01          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN
2011-04-01          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN
2011-07-01     0.979871          NaN          NaN          NaN          NaN          NaN          NaN      1.00999          NaN          NaN
2011-10-01          NaN          NaN          NaN          NaN          NaN       1.00737         NaN          NaN          NaN          NaN
2012-01-01          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN      1.05766          NaN
2012-04-01          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN     0.979955          NaN
2012-07-01          NaN          NaN          NaN          NaN          NaN          NaN          NaN          NaN      1.01718          NaN
2012-10-01          NaN     0.916302          NaN          NaN          NaN          NaN          NaN     0.979858          NaN          NaN
Я не нашел никакого метода сборки pandas, поэтому использовал gmean из scipy

Код: Выделить всё

from scipy.stats.mstats import gmean
но при вызове в строке:

Код: Выделить всё

In [285]:gmean(DataFrame.loc['2015-10-01'])
Traceback (most recent call last):

File "", line 1, in 
gmean(DataFrame.loc['2015-10-01'])

File "D:\Python\lib\site-packages\scipy\stats\stats.py", line 305, in gmean
log_a = np.log(np.array(a, dtype=dtype))

AttributeError: 'float' object has no attribute 'log'
Я получаю исключение AttributeError
Я пытался избавиться от Nan с помощью

Код: Выделить всё

In [287]: gmean(DataFrame.loc['2015-10-01'].dropna())
Traceback (most recent call last):

File "", line 1, in 
gmean(DataFrame.loc['2015-10-01'].dropna())

File "D:\Python\lib\site-packages\scipy\stats\stats.py", line 305, in gmean
log_a = np.log(np.array(a, dtype=dtype))

AttributeError: 'numpy.float64' object has no attribute 'log'
Я могу сделать это вручную с помощью метода math pow, но, конечно, это очень неэффективно, оно работает только со скалярами.

Подробнее здесь: https://stackoverflow.com/questions/564 ... -dataframe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»