Посчитать среднее значение по двум столбцам фрейма данных

Задача: Посчитайте среднее время жизни пользователей, которые выставили более 100 оценок. Вопрос: Как посчитать разницу между вложенными столбцами max и min? Как оформить это в коде? Пробовала написать функцию и применить её к df, но не пойму что передать в аргумент. Буду благодарна за помощь

введите сюда описание изображения


Ответы (2 шт):

Автор решения: CrazyElf

Что-то такое будет::

df100 = df.loc[df['count'] > 100]
mean = (df100[('timestamp','max')] - df100[('timestamp','min')]).mean()
→ Ссылка
Автор решения: MaxU

Для доступа к вложенным столбцам можно воспользоваться pd.IndexSlice.

Пример:

In [41]: df
Out[41]:
first        bar                 baz                 foo                 qux
second       one       two       one       two       one       two       one       two
A      -0.502487  0.491691  1.379375 -0.688359  0.212742  0.526236 -0.086782 -0.617966
B       0.560005  0.084704 -0.049344  0.657484 -0.179556  1.410070  0.064947 -1.119560
C       0.166898  1.014669  0.902663 -0.362594 -1.698073  0.504725 -2.057105  0.524396

In [42]: idx = pd.IndexSlice

In [43]: df.loc[:, idx["bar", "two"]] - df.loc[:, idx["bar", "one"]]
Out[43]:
A    0.994179
B   -0.475301
C    0.847772
dtype: float64
→ Ссылка