简单解释python unstack()

简单解释python unstack(),python,pandas,pivot-table,Python,Pandas,Pivot Table,我试图在重写python代码之前对其进行注释,以避免由于错误而取消堆栈()。当我向自己解释unstack时,我感到很困惑,即使是在阅读了文档并看到了输出之后。有人能解释一下它不使用“水平旋转”这样的短语做什么吗 从文档: 透视索引标签的级别(必须是分层的),返回具有新级别的列标签的数据帧,其最内层由透视索引标签组成。如果索引不是多索引,则输出将是一个系列(当列不是多索引时类似于堆栈)。所涉及的级别将自动进行排序 以下是我试图注释的代码: import numpy as np import pan

我试图在重写python代码之前对其进行注释,以避免由于错误而取消堆栈()。当我向自己解释unstack时,我感到很困惑,即使是在阅读了文档并看到了输出之后。有人能解释一下它不使用“水平旋转”这样的短语做什么吗

从文档:

透视索引标签的级别(必须是分层的),返回具有新级别的列标签的数据帧,其最内层由透视索引标签组成。如果索引不是多索引,则输出将是一个系列(当列不是多索引时类似于堆栈)。所涉及的级别将自动进行排序

以下是我试图注释的代码:

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)

DataFrame.unstack()
只需将多索引(层次索引)数据帧的某些级别移动(“枢轴”)为列标签,而不是行标签。文档中有明确的示例。

在使用
unstack()
之前和之后打印数据帧应该非常清楚地说明
unstack
对数据帧的作用。特别是如果所有可能要提供给unstack的数据帧看起来都很相似的话。@Joooeey我理解它的作用,我只是努力用简单的词来解释它,因为有很多操作是同时发生的。那么你的意思是unstack将提供给它的第二列设置为列标签?“pivot”和“makethisconthecolumn标签”是一样的@Rilcon42:我想你说得对。尝试一些例子并检查它。