Объясните python unstack () просто - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь аннотировать свой код Python перед тем, как переписать его, чтобы избежать unstack () из-за ошибки . Я озадачен, когда дело доходит до объяснения unstack самому себе, даже после прочтения документации и просмотра результатов. Может кто-нибудь объяснить, что он делает, не используя фразы типа «разворачивать уровень»?

Определение из документов:

Повернуть уровень (обязательно иерархических) меток индекса, возвращая DataFrame с новым уровнем меток столбцов, чей самый внутренний уровень состоит из меток поворотного индекса. Если индекс не является MultiIndex, вывод будет Series (аналог стека, когда столбцы не MultiIndex). Соответствующий уровень автоматически сортируется.

Вот код, который я пытаюсь комментировать:

import numpy as np
import pandas as pd
from numpy.core.defchararray import add

d = {'vote': [100, 50,1,23,55,67,89,44], 
     'vote2': [10, 2,18,26,77,99,9,40], 
     'ballot1': ['a','b','a','a','b','a','c','c'],
     'voteId':[1,2,3,4,5,'aaa',7,'NaN']}
df1=pd.DataFrame(d)
#######################################################################
print(df1)
#Set the DataFrame index (row labels) using columns voteId and ballot1
s=df1[:10].set_index(['voteId','ballot1'],verify_integrity=True)
print(s)
#unstack (default -1). ?????
# s=s.unstack()
# s.columns=s.columns.map('(ballot1={0[1]}){0[0]}'.format) 
# dflw=pd.DataFrame(s)
# print(df1)
# print(dflw)

1 Ответ

0 голосов
/ 04 мая 2018

DataFrame.unstack() просто перемещает («разворачивает») некоторые уровни мультииндексного (иерархически индексируемого) фрейма данных, чтобы стать метками столбцов вместо меток строк. В документации есть четкие примеры.

...