2016-02-09 2 views
0

мне нужно транспонировать dataframe отТранспонирование многоуровневые индекса панд

Month Year Count 
1  2013 4456 
     2014 3321 
     2015 3316 
     2016 6798 
2  2013 4123 
     2014 4490 
     2015 5689 

и так далее в один, который выглядит как

Year 1  2 
2013 4456 4123 
2014 3321 4490 
2015 3316 5689 
2016 6798 NaN 

различные попытки, в том числе глядя на MultiLevel index to columns : getting value_counts as columns in pandas Havent работал.

On edit - метод unack не работал (или я не знал, как правильно его использовать), однако свод с reset_index работает отлично.

Моя первая проблема, похоже, представляет собой полное недоразумение индексов и мультииндексов, так как месяц-месяц - это мультииндекс (в зависимости от вида данных), но любые попытки индексирования с помощью df ['Month'] или других комбинаций всегда потерпеть неудачу.

Было бы очень полезно помочь здесь.

+0

Возможный дубликат [Индекс MultiLevel для столбцов: получение значения \ _counts как столбцы в пандах] (http://stackoverflow.com/questions/11971381/multilevel-index-to-columns-getting-value-counts-as- columns-in-pandas) – Jezzamon

+1

Ваше решение ниже, используя pivot и reset_index, решило проблему для меня способом, отличающимся тем, что связанный ответ использует unstack. Такая же проблема отличается от других решений. – cryptoref

ответ

1

Функция, которую вы ищете, это pivot. Возможно, вам придется сначала использовать reset_index.

df = df.reset_index().pivot('Year', 'Month', 'Count') 

В качестве альтернативы, вы можете использовать функцию unstack, как в this answer.

+0

Это все так просто, когда вы видите ответ. Предыдущие попытки также использовали pivot_table, что явно не получилось :) – cryptoref

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