gpt4 book ai didi

python - t 在 Pandas 数据帧上进行测试并制作一个新的结果 p 值矩阵

转载 作者:太空狗 更新时间:2023-10-29 21:43:24 24 4
gpt4 key购买 nike

我有 3 个包含 7 列的数据框。

df_a
df_b
df_c
df_a.head()

VSPD1_perc VSPD2_perc VSPD3_perc VSPD4_perc VSPD5_perc VSPD6_perc \
0 NaN NaN NaN NaN NaN NaN
3 0.189588 0.228052 0.268460 0.304063 0.009837 0
5 0.134684 0.242556 0.449054 0.168816 0.004890 0
9 0.174806 0.232150 0.381936 0.211108 0.000000 0
11 NaN NaN NaN NaN NaN NaN

VSPD7_perc
0 NaN
3 0
5 0
9 0
11 NaN

我的目标是使用 t 检验得到的 p 值生成矩阵或数据帧,并针对 df_a 逐列测试数据帧 df_b 和 df_c。即针对 df_a 中的第 1 列测试 df_b 和 df_c 中的第 1 列。我想使用数据框 (df_a) 作为标准来进行统计 t 检验。我在 statsmodels (stat.ttest_ind(x1, x2)) 中找到了统计测试,但我需要帮助来根据测试的 p 值制作矩阵。有谁知道怎么做...

最佳答案

撇开适当的 NaN 管理不谈,您可以像 t, p = scipy.stats.ttest_ind(df_a.dropna(axis=0), df_b.dropna(axis=0)).

查看演示:

>>> import pandas as pd
>>> import scipy.stats
>>> import numpy as np
>>> df_a = pd.read_clibpoard()
>>> df_b = df_a + np.random.randn(5, 7)
>>> df_c = df_a + np.random.randn(5, 7)
>>> _, p_b = scipy.stats.ttest_ind(df_a.dropna(axis=0), df_b.dropna(axis=0))
>>> _, p_c = scipy.stats.ttest_ind(df_a.dropna(axis=0), df_c.dropna(axis=0))
>>> pd.DataFrame([p_b, p_c], columns = df_a.columns, index = ['df_b', 'df_c'])
VSPD1_perc VSPD2_perc VSPD3_perc VSPD4_perc VSPD5_perc VSPD6_perc \
df_b 0.425286 0.987956 0.644236 0.552244 0.432640 0.624528
df_c 0.947182 0.911384 0.189283 0.828780 0.697709 0.166956

VSPD7_perc
df_b 0.546648
df_c 0.206950

关于python - t 在 Pandas 数据帧上进行测试并制作一个新的结果 p 值矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20675534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com