2015-04-14 2 views
1

У меня есть dataframe раундов (что было результатом удаления столбца из другого блока данных) со следующей структурой (не могу публиковать фотографии, извините):Pandas groupby (...). Mean() потерянные ключи

---------------------------- 
|type|N|D|NATC|K|iters|time| 
---------------------------- 
rows of data 
---------------------------- 

Я использую GroupBy так что я могу получить то среднее из групп, например, так:

rounds = results.groupby(['type','N','D','NATC','K','iters']) results_mean = rounds.mean()

я получаю средства, что я хотел, но я получаю проблемы с ключами. _results_mean_ dataframe имеет следующую структуру:

---------------------------- 
| | | | | |  |time| 
|type|N|D|NATC|K|iters| | 
---------------------------- 
rows of data 
---------------------------- 

Единственный ключ признан "время" (я выполнил results_mean.keys()).

Что я сделал не так? Как я могу это исправить?

+0

Просьба указать исходные данные ввода, код для воспроизведения вашей проблемы и желаемого вывода в ваш вопрос, непонятно, какова ваша проблема – EdChum

ответ

3

В ваших агрегированных данных time является единственной колонкой. Другие - индексы.

groupby имеет параметр as_index. From the documentation:

as_index: булева, по умолчанию True

Для агрегированного выхода, возврат объекта с группой метками, как индекс. Только для ввода данных DataFrame. as_index = False эффективно «SQL-стиль» сгруппированных выход

Таким образом, вы можете получить желаемый результат, вызвав

rounds = results.groupby(['type','N','D','NATC','K','iters'], as_index = False) 
results_mean = rounds.mean() 

Или, если вы хотите, вы всегда можете преобразовать индексы для ключей by using reset_index. Использование

rounds = results.groupby(['type','N','D','NATC','K','iters']) 
results_mean = rounds.mean().reset_index() 

также должен иметь желаемый эффект.

+0

. Я постараюсь как можно скорее, но, похоже, на месте. Я прочитал документ, но не совсем понял, что это значит. – chiroptera

+1

Это отлично поработало, спасибо! – chiroptera