Pandas: среднее значение вычисления или std (стандартное отклонение) по всему кадру данных

Вот моя проблема, у меня есть dataframe, как это:

Depr_1 Depr_2 Depr_3 S3 0 5 9 S2 4 11 8 S1 6 11 12 S5 0 4 11 S4 4 8 8 

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

 df.mean() 

Затем я придумал:

 df.mean().mean() 

Но этот трюк не будет работать для вычисления стандартного отклонения. Мои последние попытки:

 df.get_values().mean() df.get_values().std() 

За исключением того, что в последнем случае он использует функцию mean () и std () из numpy. Это не проблема для среднего значения, но для std, поскольку функция pandas использует по умолчанию ddof=1 , в отличие от numpy, где ddof=0 .

3 Solutions collect form web for “Pandas: среднее значение вычисления или std (стандартное отклонение) по всему кадру данных”

Вы можете преобразовать dataframe в серию со stack :

 df.stack().std() # works by converting df to a series 

или force numpy использовать ddof=1 вместо стандартного ddof=0 :

 df.values.std(ddof=1) # this is faster/more efficient 

Также обратите внимание: df.mean().mean() не обязательно даст вам правильный ответ, если у вас отсутствуют значения, и в этом случае любое из этих решений должно работать (после того, как, конечно, сменив «std» на «mean») ,

Дополнительное объяснение

Подход к стекю работает, преобразовывая ваши данные с 5×3 в 15×1, обрабатывая таким образом, как если бы все они находились в одном столбце и обеспечивали правильную степень свободы для стандартного отклонения. См. Документацию по stack здесь и здесь.

Обратите внимание, что вы можете установить степень свободы для std() numpy с ddof опции ddof (и аналогично std() pandas), так что способ numpy также может быть легко работать, а также будет несколько быстрее. (Когда вы вводите df.get_values() или df.values вы возвращаете массив numpy, поэтому последующий метод std() будет от numpy.)

Что касается скорости, numpy df.values.std ( df.values.std ) примерно на 5 раз быстрее на моем компьютере.

Наконец, обратите внимание, что вы можете получить несколько разные ответы от pandas и numpy версий std. Они будут отличаться только в 16-м десятичном разряде или около того, и это не является поводом для беспокойства, а лишь незначительная разница в том, как numpy и pandas вычисляются за кулисами (математика с плавающей запятой).

df.mean(0) может дать вам то, что вы ищете. df.std(0) работает.

Вам может понравиться df.describe () Я думаю, что он делает то, что вы хотите http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.describe.html?highlight=describe#pandas.DataFrame.describe

  • Как заполнить столбец одним значением в Pandas?
  • Объединение двух или более столбцов, которые не перекрываются
  • В pandas есть что-то вроде GroupBy.get_group, но с необязательным значением по умолчанию?
  • Программно преобразовать фрейм данных pandas в таблицу уценки
  • Предупреждение Pandas о повторных вводах по индексу
  • утечка памяти при создании буфера с пандами?
  • Экспорт таблицы LaTeX из pandas DataFrame
  • Ошибка анализа даты в Pandon pandas при чтении файла
  •  
    Interesting Posts for Van-Lav

    Какова самая быстрая система шаблонов для Python?

    Как преобразовать datetime в integer в python

    Определите, какая кнопка WTForms была нажата в окне «Флажок»

    Ошибка импорта Python: Символ не найден, но символ <s> is </ s> * не присутствует * в файле

    Фильтрация данных в пандах: используйте список условий

    Получение целочисленного индекса строки Pandas DataFrame, выполняющего условие?

    matplotlib y-axis label на правой стороне

    Как получить самую старую задачу пользователя из API Asana?

    Python PIL: лучший метод масштабирования, который сохраняет линии

    Гистограмма со сложными компонентами

    Альтернатива python .sort () (для вставки в большой список и сохранения его сортировки)

    Что такое выражение «выход» в функции?

    Как я могу использовать API-интерфейс Python для приложений Google App Engine с локальным сервером разработки, когда сервер привязан к определенному IP-адресу (а не локальному хосту)?

    Режим / Медиана / Средство для трехмерной матрицы numpy

    Загадка: квадратная головоломка

    Python - лучший язык программирования в мире.