Python 将函数应用于数据帧的某些列组

Python 将函数应用于数据帧的某些列组,python,pandas,dataframe,scipy,p-value,Python,Pandas,Dataframe,Scipy,P Value,我有一个熊猫数据框,看起来像这样: col1 col2 col3 col4 1 10 10 20 25 2 15 20 10 20 3 20 10 15 10 我想使用scipy stats包计算一个p值。具体来说,我想得到一个p值,比较每行的前两列和后两列。我曾尝试使用scipy统计数据包,但我想我在索引数据帧时遇到了问题 我认为代码可能看起来像这样(假设数据): 然后我想将pvalue追加回数据帧 最终输

我有一个熊猫数据框,看起来像这样:

   col1  col2  col3  col4
1   10    10    20    25    
2   15    20    10    20
3   20    10    15    10
我想使用scipy stats包计算一个p值。具体来说,我想得到一个p值,比较每行的前两列和后两列。我曾尝试使用scipy统计数据包,但我想我在索引数据帧时遇到了问题

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

然后我想将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)

当我使用你的建议时,我得到了这个错误:
zero\u如果所有元素的x-y都为零,那么方法“wilcox”和“pratt”就不起作用。
但我认为这是一个等级测试问题,而不是你的代码行的问题。如果我改变测试,它会起作用,非常感谢你的帮助!
df['p_v'] = df.apply(lambda x : stats.wilcoxon(x['col1':'col2'], x['col3':'col4'])[1],axis=1)