2014-11-19 5 views
0

Мой DataFrame выглядит следующим образом:разборки не возвращает dataframe

A B C var  value 
0 1 1 1 alpha 34.15 
1 1 1 1 beta 1916.95 
2 1 1 1 gamma 83.64 
3 1 1 1 delta 367.72 
4 1 1 2 alpha 88.32 
5 1 1 2 beta 2229.99 
6 1 1 2 gamma 80.72 
7 1 1 2 delta 498.68 
8 1 1 3 alpha 39.49 
9 1 1 3 beta 2831.05 

Моя цель состоит в том, чтобы сделать альфа, бета и т.д., в столбцы.

dt.unstack(var) 

производит не объект DataFrame, а массив. Есть ли способ просто вернуть объект DataFrame с альфа-бета-версией и т. Д., Являющимися столбцами?

+0

Возможно, [этот ответ] (http://stackoverflow.com/questions/22127569/opposite-of-melt-in-python-pandas#22127685) может помочь ... – Primer

+0

'unstack' работает на index, поэтому вы должны сначала установить его как индекс: 'dt.set_index ('var'). unstack()' – joris

ответ

0

Попробуйте DataFrame.pivot, и вам также нужно будет решить, каков должен быть индекс и значения.

dt.pivot('C', 'var', 'value') 
var alpha  beta delta gamma 
C         
1 34.15 1916.95 367.72 83.64 
2 88.32 2229.99 498.68 80.72 
3 39.49 2831.05  NaN NaN 
+0

ValueError: индекс содержит повторяющиеся записи, не может быть изменен. –

+0

Да, выбор столбца индекса имеет решающее значение. В примере «C» не имеет повторяющихся записей в отношении «var», поэтому это был очевидный выбор. Если есть повторяющиеся записи, то неоднозначно, чего ожидать в столбцах «альфа», «бета», .... –