Получение scipy.stats для игнорирования значений nan - PullRequest
1 голос
/ 07 мая 2019

Это продолжение моего предыдущего вопроса .

В этом наборе игрушечных данных:

import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as stats
import numpy as np

dictOne = {'Name':['First', 'Second', 'Third', 'Fourth', 'Fifth', 'Sixth', 'Seventh', 'Eighth', 'Ninth'],
           "A":[1, 2, -3, 4, 5, np.nan, 7, np.nan, 9],
           "B":[4, 5, 6, 5, 3, np.nan, 2, 9, 5],
           "C":[7, np.nan, 10, 5, 8, 6, 8, 2, 4]}
df2 = pd.DataFrame(dictOne)

column = 'C'

df2[df2[column] > -999].hist(column, alpha = 0.5)
param = stats.norm.fit(df2[column], nan_policy = 'omit')   # Fit a normal distribution to the data
print(param)

Я пытаюсь построить гистограмму из одногостолбцов (о чем был предыдущий вопрос) с наложенной кривой нормального распределения.scipy.stats.norm.fit дает мне [nan, nan] для param, хотя я использовал nan_policy = 'omit' в вызове функции.

Как мне заставить его игнорировать значения NaN в кадре данных, чтобы получить некоторыеразумная статистика?

1 Ответ

1 голос
/ 07 мая 2019

Я не верю, nan_policy - это ключевое слово, используемое fit.

. В любом случае вы можете просто удалить нулевые значения из исходного набора данных:

param = stats.norm.fit(df2[column].dropna())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...