Посчитать среднее значение по двум столбцам фрейма данных
Задача: Посчитайте среднее время жизни пользователей, которые выставили более 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
