Записать переменную в файл
У меня есть набор данных, на основе которых я рассчитываю некоторые показатели:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from statsmodels.multivariate.manova import MANOVA
from statsmodels.formula.api import ols
import statsmodels.api as sm
from statsmodels.stats.multicomp import (pairwise_tukeyhsd,
MultiComparison)
df = pd.read_excel('Датафрейм.xlsx', sheet_name='Vse', index_col=0)
MultiComp = MultiComparison(df['Harakteristika1'],
df.index)
pokazatel = pd.DataFrame(MultiComp.tukeyhsd().summary())
Вывод выглядит примерно так (несколько первых строк после перевода в DataFrame):
0 1 2 3 4 5 6
0 group1 group2 meandiff p-adj lower upper reject
1 Вся Общ 0.3831 0.2172 -0.1032 0.8693 False
2 Вся Потр 3.0183 0.001 1.5115 4.5251 True
3 Вся Произ 0.391 0.4985 -0.2459 1.028 False
4 Вся Проф -0.2482 0.05 -0.4964 0.0 False
5 Вся Расп 0.8067 0.001 0.2382 1.3752 True
6 Общ Потр 2.6352 0.001 1.0682 4.2022 True
7 Общ Произ 0.008 0.9 -0.7607 0.7766 False
Это всё дело я записываю в Excel файл. Но я хочу сделать цикл, который будет рассчитывать такую табличку по каждому столбцу (на самом деле у меня таких столбцв очень много, несколько десятков, соответственно и табличек очень много). Записывать их на отдельные листы Excel, а потом сводить вручную неудобно, но свести в одно место все равно надо.
Есть ли легкий и быстрый способ записи всех этих табличек на одном листе друг под другом или нужно создавать отдельный DataFrame и только после записывать в Excel?
Ответы (1 шт):
def get_mcomp(col):
mcomp = MultiComparison(col, col.index)
return pd.DataFrame(mcomp.tukeyhsd().summary()).assign(column=col.name)
res = pd.concat([get_mcomp(df[col]) for col in df.columns], ignore_index=True)
результат:
In [48]: res
Out[48]:
0 1 2 3 4 5 6 column
0 group1 group2 meandiff p-adj lower upper reject Harakteristika1
1 Вся Общ 0.3831 0.2172 -0.1032 0.8693 False Harakteristika1
2 Вся Потр 3.0183 0.001 1.5115 4.5251 True Harakteristika1
3 Вся Произ 0.391 0.4985 -0.2459 1.028 False Harakteristika1
4 Вся Проф -0.2482 0.05 -0.4964 0.0 False Harakteristika1
.. ... ... ... ... ... ... ... ...
91 Потр Проф 0.9254 0.4907 -0.5712 2.4221 False Harakteristika6
92 Потр Расп 0.5026 0.9 -1.0775 2.0828 False Harakteristika6
93 Произ Проф 0.836 0.0027 0.1968 1.4752 True Harakteristika6
94 Произ Расп 0.4132 0.6753 -0.4026 1.229 False Harakteristika6
95 Проф Расп -0.4228 0.2844 -0.9951 0.1495 False Harakteristika6
[96 rows x 8 columns]