Python 3.x python中两个数据帧之间的Wilcoxon秩和检验
我试图在两个数据帧之间执行Wilcoxon秩和测试。我只想在行之间执行测试。例如,测试应仅在df1(A,1,2,3)和df2(A,10,12,13)中的行1之间进行,在df1(B,4,5,6)和df2(B,14,15,16)中的行2之间进行,依此类推Python 3.x python中两个数据帧之间的Wilcoxon秩和检验,python-3.x,pandas,numpy,statistics,scipy.stats,Python 3.x,Pandas,Numpy,Statistics,Scipy.stats,我试图在两个数据帧之间执行Wilcoxon秩和测试。我只想在行之间执行测试。例如,测试应仅在df1(A,1,2,3)和df2(A,10,12,13)中的行1之间进行,在df1(B,4,5,6)和df2(B,14,15,16)中的行2之间进行,依此类推 df1=pd.DataFrame(np.array([['A',1, 2, 3], ['B',4, 5, 6], ['C',7, 8, 9]]), columns=['Details','a', 'b', 'c
df1=pd.DataFrame(np.array([['A',1, 2, 3], ['B',4, 5, 6], ['C',7, 8, 9]]),
columns=['Details','a', 'b', 'c'])
df2=pd.DataFrame(np.array([['A',10, 12, 13], ['B',14, 15, 16], ['C',17, 18, 19]]),
columns=['Details','a', 'b', 'c'])
这将导致我在数据帧行之间找到一列用于测试的p值
out = pd.DataFrame(np.array([['A',0.05], ['B',0.0002], ['C',1]]),
columns=['details','P'])
一种方法是应用for循环,但不幸的是,我的原始数据集中有28000行,这个实验必须重复至少1000次。我想知道是否有人有更好的策略来解决这个问题。非常感谢您事先提供的帮助。一种计算方法是使用scipy的ranksums
from scipy.stats import ranksums
import pandas as pd
df1=pd.DataFrame(np.array([['A',1, 2, 3], ['B',4, 5, 6], ['C',7, 8, 9]]),
columns=['Details','a', 'b', 'c'])
df2=pd.DataFrame(np.array([['A',10, 12, 13], ['B',14, 15, 16], ['C',17, 18, 19]]),
columns=['Details','a', 'b', 'c'])
a = df1.loc[0,'a':].values.astype(int) #Select the first row
b = df2.loc[0,'a':].values.astype(int) #Select the second row
ranksums(a, b)
你问题的答案很大程度上取决于你用什么来计算Wilcoxon秩和?