将函数应用于 pandas 数据框的某些列组

Apply function to certain groups of columns of a pandas dataframe

我有一个 pandas 数据框,如下所示:

   col1  col2  col3  col4
1   10    10    20    25    
2   15    20    10    20
3   20    10    15    10

我想使用 scipy 统计包计算 p 值。具体来说,我想获得一个 p 值,比较每行的前两列和最后两列。我曾尝试使用 scipy 统计数据包,但认为我在索引数据帧时遇到了问题。

我认为代码可能看起来像这样(假设数据):

from scipy import stats
stats.wilcoxon(df[col1:col2], df[col3:col4])

然后我想将 pvalue 附加回数据框。

最终输出类似于:

   col1  col2  col3  col4  p_value
1   10    10    20    25    0.05
2   15    20    10    20    0.10
3   20    10    15    10    0.02

这两个比较是 col1/col2 与 col3/col4 的值。

如有任何帮助,我们将不胜感激!

所以我们可以逐行进行

df['p_v'] = df.apply(lambda x : stats.wilcoxon(x['col1':'col2'], x['col3':'col4'])[1],axis=1)