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)