【问题标题】:Getting scipy.stats to ignore nan values让 scipy.stats 忽略 nan 值
【发布时间】:2019-09-24 15:14:53
【问题描述】:

这是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 值以获取一些合理的统计信息?

【问题讨论】:

  • 也许放弃吧?

标签: python pandas dataframe scipy statistics


【解决方案1】:

我不相信nan_policyfit 使用的关键字。

在任何情况下,您都可以从源数据集中删除空值:

param = stats.norm.fit(df2[column].dropna())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 2011-02-18
    • 2016-03-28
    • 2017-02-11
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    相关资源
    最近更新 更多