2016-06-10 4 views
1

Я хотел бы объединить два столбца для индекса при повороте pandasdataframe. Я использую следующий код, чтобы сделать это:Использование нескольких столбцов для индексации в сводной таблице

ConceptTemp = Concept.pivot(index=['memberid','testscoreid'], columns='questionid', values='correct') 

это дает мне следующую ошибку:

ValueError: Wrong number of items passed 1532, placement implies 2

1532 это количество строк в моем dataframe. Я не могу pivot только на memberid или на testscoreid, так как у меня будет дубликат questionid значений. Индексный столбец должен быть комбинацией testscoreid И memberid.

У кого-нибудь есть указатели на то, как это сделать?

ответ

2

Я думаю, что вы можете использовать pivot_table:

ConceptTemp = Concept.pivot_table(index=['memberid','testscoreid'], 
            columns='questionid', 
            values='correct') 

pivot_table использует aggfunc, по умолчанию aggfunc=np.mean если дублей. Лучшее объяснение с образцом - here и в docs.

Смежные вопросы