微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用loc

如何解决使用loc

Face ID Manipulation    mean
Condition       Manipulated None


 0    101 Averageness4.428571 3.400000
1   101 Femininity  4.235294    3.625000
2   101 Masculinity 3.666667    4.000000
3   101 Symmetry    4.047619    3.809524
4   102 Averageness 3.695652    2.611111
... ... ... ... ...
431 96  Symmetry    1.565217    1.684211
432 98  Averageness 3.882353    3.333333
433 98  Femininity  2.789474    3.318182
434 98  Masculinity 3.440000    3.800000
435 98  Symmetry    3.473684    3.347826

436行×4列

我首先必须将数据透视起来并将其存储在名为“透视”的变量中。

我正在尝试从此DataFrame创建四个名为“ avg,sym,masc和fem”的子DataFrame,它们存储过滤后的数据,以便我可以对其进行分析。我不确定该如何处理。

说明:从此DataFrame(透视)中,创建四个称为avg,sym,masc和fem的子DataFrame,用于存储过滤后的数据。然后,将它们传递给pingouin的t-test函数,并参考None和Manipulated列并显示结果。显示的测试应该有四个。

这是我到目前为止所拥有的:

 # Pivot data
 piVoted = pd.pivot_table(by_faces,index=['Face ID','Manipulation'],columns= 'Condition',values='Numeric_score')

display(piVoted.reset_index())

# Pull out sub-dataframes
avg = piVoted.loc[Manipulation['Averageness'] =='Manipulated','None']
sym = piVoted.loc[Manipulation['Symmetry'] =='Manipulated','None']
masc = piVoted.loc[Manipulation['Masculinity']=='Manipulated','None']
fem = piVoted.loc[Manipulation['Femininity'] =='Manipulated','None']

#carry out t-tests with pingouin and display directly,four lines needed
 avg1 = pg.ttest(avg['Manipulated',avg['None'],paired= True)
 sym1 = pg.ttest(avg['Manipulated',paired= True)
 masc1= pg.ttest(avg['Manipulated',paired= True)
 fem1 = pg.ttest(avg['Manipulated',paired= True)

我的输出将反映以下t检验结果:

对于对称性,(M = 3.02,SD = 1.49) 对称版本(M = 3.00,SD = 1.46); t(108)= 0.68,p = 0.498,d = 0.07。

与没有操作(M = 3.10,SD = 1.36)相比,平均值(M = 3.50,SD = 1.36); t(108)= 9.14,p

对于女性化(M = 2.98,SD = 1.58)或更多女性化版本(M = 3.03,SD = 1.59); t(108)= 1.11,p = 0.271,d = 0.11。

最后,对于男性气质(M = 3.15,SD = 1.44)与正常(M = 3.51,SD = 1.37)相比; t(108)= 8.10,p

解决方法

df = pd.Dataframe(byface)

avg = df[df['Manipulation']=='Averageness']
sym = df[df['Manipulation']=='Symmetry']
masc= df[df['Manipulation']=='Masculinity']
fem = df[df['Manipulation']=='Femininity']

根据操纵将数据帧分离。您可以使用pivot_table来枢轴新创建的数据框,但这不是必需的,并将'manipulated'和'none'列的值传递给pingouin的t-test函数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。