【发布时间】:2016-08-29 14:32:17
【问题描述】:
我在 scipy 中进行 t 检验时遇到问题,这让我慢慢发疯。它应该很容易解决,但我所做的一切都不起作用,而且我无法通过广泛的搜索找到解决方案。我在 Anaconda 的最新发行版中使用 Spyder。
具体来说:我想在我从 csv 文件导入的 pandas 数据框中比较两列之间的均值——“Trait_A”和“Trait_B”。其中一列中的一些值是“Nan”(“不是数字”)。独立样本 scipy t-test 函数的默认设置不适应“NaN”值。但是,setting the 'nan_policy' parameter to 'omit' should deal with this。然而,当我这样做时,测试统计量和 p 值返回为“NaN”。当我将涵盖的值范围限制为实际数字时,测试工作正常。我的数据和代码如下;谁能建议我做错了什么?谢谢!
数据:
Trait_A Trait_B
0 1.714286 0.000000
1 4.275862 4.000000
2 0.500000 4.625000
3 1.000000 0.000000
4 1.000000 4.000000
5 1.142857 1.000000
6 2.000000 1.000000
7 9.416667 1.956522
8 2.052632 0.571429
9 2.100000 0.166667
10 0.666667 0.000000
11 2.333333 1.705882
12 2.768145 NaN
13 0.000000 NaN
14 6.333333 NaN
15 0.928571 NaN
我的代码:
import pandas as pd
import scipy.stats as sp
data= pd.read_csv("filepath/Data2.csv")
print (sp.stats.ttest_ind(data['Trait_A'], data['Trait_B'], nan_policy='omit'))
我的结果:
Ttest_indResult(statistic=nan, pvalue=nan)
【问题讨论】:
标签: python numpy scipy anaconda