首页 > 解决方案 > 如何将 statsmodels 测试的结果导出到 CSV?

问题描述

我只是在学习如何使用statsmodels(Python 模块)来执行回归分析、正态性测试和同质方差测试。我正在处理几个数据集(通常是 CSV 文件),并且想编写一个脚本来帮助我更有效地完成这项工作。我的数据只是一组数字。

数据示例

column1, column2
2.80609,2.80609
2.39059,1.6697286666666666
3.6487540000000003,1.8243770000000001
1.8582885714285717,3.0046419047619044
2.587834,1.7252226666666666
...

具体来说,我想:

(1) 对几个文件进行迭代测试

(2) 将每次测试的结果保存到新文件的新行中

我正在使用的测试之一的示例。

data = pd.read_csv("data.csv") 

column1 = data['column1']
p_value = sm.stats.diagnostic.lilliefors(data, dist='norm', pvalmethod='approx')

它导出的浮点数如下所示。

(0.08557045418097009, 7.144631930303909e-50)

我对 if/else 和 boolean 值的探索导致这段代码打印出一个也很适合导出的文本。

p_value = sm.stats.diagnostic.lilliefors(curvature_length, dist='norm', pvalmethod='approx')[1]
if p_value<0.05:
    print("Data is not normal distributed")
else:
    print("Data is normal distributed")
print(p_value)

任何有关如何解决此问题的提示和反馈将不胜感激!

标签: pythoncsvstatsmodels

解决方案


将两个浮点数写入 CSV https://docs.python.org/3/library/csv.html

import csv
with open('eggs.csv', 'w', newline='') as csvfile:
    csvwriter = csv.writer(csvfile)

循环通过成对的花车做

        csvwriter.writerow([float1, float2])

推荐阅读