#python #pandas #pandas-groupby #mean
#python #pandas #pandas-groupby #означает
Вопрос:
В Pandas Id нравится сравнивать среднее значение последних 100 значений из столбца со средним значением всего столбца, в основном это следующие значения: value_x = df[['a','b']].tail(100).mean()
и value_y = df[['a','b']].mean()
, где столбец ‘a’ является идентификатором типа True / False. Теперь у меня есть value_a
value_b
, но не в том формате, который я хочу.
То же самое для следующей части: в данных я хочу сгруппировать значение по столбцу ‘a’, чтобы оно выглядело следующим образом: value_x2 = df[['a','b']].tail(100).groupby(['a']).mean()
и value_y2 = df[['a','b']].groupby(['a']).mean()
и из этого я могу получить «значение» следующим образом: value_x3 = value_x2.loc['a_ID1']
, value_y3 = value_y2.loc['a_ID1']
Моя проблема в том, что я не могу сравнить эти значения, если я
if value_x3 > value_y3: print('aaa') else: print('bbb')
Я получаю ValueError: значение истинности Series неоднозначно. Используйте a.empty, a.bool(), a.item(), a.any() или a.all().
Как я могу привести значения к правильному формату? Спасибо.
Ответ №1:
Хорошо, я сам нашел ответ. Вместо того, чтобы использовать ранее упомянутый способ, я использовал более простой: df[df['a_ID1']=='ID1'].b.mean()
для и то же самое с .tail(100)
Если у вас есть идея получше, пожалуйста, поделитесь. Спасибо.