我相信这很简单,但我仍然在学习巨蟒。我需要帮助,找出如何在熊猫数据中的列上迭代,并为每个列运行pingouin分析。从现在起,我可以跑了
pg.anova(data=df, dv='variable1', between='Group', detailed=True)虽然我得到了我想要的结果,但我有180个变量,因此能够自动实现这一点将有很长的路要走。如果有一种方法也可以将p值结果作为向量添加到dataframe中,我将非常感激。或者,只要我能够将anova结果绑定到每个变量名,就可以将结果保存在另一个文件中。
发布于 2022-05-16 17:18:45
anova的结果是熊猫Dataframes,因此很容易将它们附加到单个DataFrame中,您只需创建一个新变量就可以识别每个因变量:
import pingouin as pg
import pandas as pd
# load data
df = pg.read_dataset('mixed_anova')
# list of dependent variables
dep_vars = ['Scores', 'Subject']
# List with anova results
list_results = []
for dv in dep_vars:
# run anova and create dv variable to identify dependent variable
aov = pg.anova(data=df, dv=dv, between='Group', detailed=True)\
.assign(dv=dv)
# append to list of results
list_results.append(aov)
# concat all results into a DataFrame
df_results = pd.concat(list_results, axis=0)
# Export to Excel
df_results.to_excel('results.xlsx')
df_results

DataFrame df_results包含所有的Anova结果,变量dv帮助您识别因变量。结果也被导出到Excel中。如果只需要p值和dep变量,则可以筛选此df:
df_results.query('Source=="Group"').filter(['p-unc', 'dv'])

https://stackoverflow.com/questions/72262660
复制相似问题