这是my previous question的后续行动。
在此玩具数据集中:
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值以获取一些合理的统计信息?
答案 0 :(得分:1)
我不认为nan_policy
是fit
使用的关键字。
无论如何,您都可以从源数据集中删除空值:
param = stats.norm.fit(df2[column].dropna())