У меня есть огромный фрейм данных DF, например, с 200 строками и 200 столбцами:
UIN GROUP v1 v2 v3 cat1 cat2 cat3 ...
1 A 2.0 3.0 5.0 1 0 0
2 B 1.0 4.0 6.0 0 1 1
3 A 3.0 5.0 7.0 1 0 0
Я хочу выполнить статистические сравнения и линейные / логистические регрессии для каждого столбца. В RI можно просто сделать это:
lapply(DF[c(2:5)], function(x) wilcox.test(x ~ GROUP, data = DF, exact = FALSE))
# or multiple groups:
lapply(DF[c(2:5)], function(x) kruskal.test(x ~ GROUP, data = DF))
и
lapply(DF[c(2,6,7,8)], function(x) fisher.test(x ~ DF$GROUP))
и
lapply(DF[c(2:8), function(x) glm(GROUP ~ x, data = DF, family = "binomial")
Это очень быстро и удобно, и мы можем увидеть полные результаты всписок.
Есть ли способ получить такой элегантный вывод в python? Мне нужно выполнить разбиение на группы по столбцам и выполнить базовые тесты: ttest, тест Уилкокса, chisq, fisher и некоторые регрессии. Мне не нравятся решения, использующие импорт пакетов R в Python.