【问题标题】:Displaying floats instead of exponentials in statsmodel outputs在 statsmodel 输出中显示浮点数而不是指数
【发布时间】:2020-12-27 12:46:43
【问题描述】:

我正在使用 statsmodels 运行单向方差分析,其中组变量('age_group')预测因变量('score')。然后我进行成对 t 检验(使用 t_test_pairwise)来检查哪个年龄组之间的分数存在差异。

在我的输出中,p 值显示为指数而不是浮点数(例如,8.702542e-02 而不是 0.008702542),这使得输出表更难阅读且不太美观。

我的输出:

在我看到的所有示例代码中,输出表都以浮点数显示;我运行相同的代码行并多次重新启动内核;输出保持指数级。有什么办法解决这个问题?

感谢您的帮助。

【问题讨论】:

    标签: python format output statsmodels anova


    【解决方案1】:

    尝试使用内置函数 round(number_to_be_rounded, number_of_digits) 对结果进行四舍五入。

    但这会导致您丢失信息,另一种解决方案可能是使用以正确方式格式化的字符串,例如:

    "{:.10f}".format(p_value)
    

    将在逗号后打印 10 位数字。

    在您的情况下,在您调用 t_test_pairwise 函数后,您应该这样做:

    pair_t.result_frame["pvalue-hs"].apply(lambda x: "{:.10f}".format(x))
    

    【讨论】:

    • 感谢您的快速回复!我添加了您的行并收到以下 TypeError 消息:'MultiCompResult' object is not subscriptable 我认为这是因为 pair_t 不是正确的表?是否有解决此问题的方法(或解决我的问题的其他方法)?
    • 没错,我忘了从 MultiCompResult 中获取 pandas DataFrame。我编辑了我的答案,现在应该可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多