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

问题描述

我有一个如下所示的 Pandas 数据框:

echo date_format($result->deposit_due_date,"m-d-y")

我想使用 scipy stats 包计算 p 值。具体来说,我想得到一个 p 值,比较每行的前两列和最后两列。我曾尝试使用 scipy stats 包,但认为我无法索引数据框。

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

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

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

最终输出将类似于:

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

两个比较是来自 col1/col2 和 col3/col4 的值。

任何帮助将不胜感激!

解决方法

所以我们可以一行一行地做

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