给出以下DataFrame:
count = np.array([10, 20]) #from first row of Count1 and Count2, respectively
nobs = np.array([30, 65]) #from first row of Nobs1 and Nobs2, respectively
pv = proportions_ztest(count=count,nobs=nobs,value=0,alternative='two-sided')[1] #this returns just the p-value, which is of interest
pv
0.80265091465415639
我想在每行的每个列组(1和2,1和3,2和3)的组合上应用z test for proportions。按列组,我的意思是,例如," Count1"和" Nobs1"。
例如,一个这样的测试将是:
loop
我希望结果(pv)进入名为" p_1_2"的新列(第一行)。或与其各自列对应的逻辑符号。
总之,我面临的挑战是:
如何每行应用此项。
...对于上面提到的每个配对组合。
...其中列名和对数" Count"和" Nobs"列可能会有所不同(假设每个" Count"列总会有一个" Nobs"列。)
与3相关:例如,我可能有一个名为" 18-24"的列。另一个名为" 18-24_Nobs"。
提前致谢!
答案 0 :(得分:2)
至1)和2)对于一次测试,可以对其他测试进行类似编码或在附加循环中进行编码
for i,row in d.iterrows():
d.loc[i,'test'] = proportions_ztest(count=row['Count1':'Count2'].values,
nobs=row['Nobs1':'Nobs2'].values,
value=0,alternative='two-sided')[1]
for 3)应该可以在循环中使用纯python处理这些情况