尝试了解last example in the pandas docs for unstack()。
>>> index = pd.MultiIndex.from_tuples([('one', 'a'), ('one', 'b'),('two', 'a'), ('two', 'b')])
>>> s = pd.Series(np.arange(1.0, 5.0), index=index)
>>> s
one a 1.0
b 2.0
two a 3.0
b 4.0
我解释unstack
的方式是它从层次索引中提取层次并将它们作为列放在上面。参数例如。 -1,0表示它移动到列侧的层级索引的哪个级别。
因此,在两个示例中,s.unstack(0)
和s.unstack(-1)
如何将索引的级别转换为列是有意义的。
我不遵循的是我们有两行,两列的最后一个例子。
df = df.unstack(level=0)
df
one two
a 1.0 3.0
b 2.0 4.0
当我应用df.unstack()
时,它会将列作为层次索引的成员返回。
df.unstack()
one a 1.0
b 2.0
two a 3.0
b 4.0
dtype: float64
我不明白为什么这是行为,默认是什么。我想它是某种程度上因为索引和列都不是作为层次索引开始的,但我真的不能总结。感觉还有更多我不想讨论的事情。