转换数据
df.stack() 列索引→行索引 df.unstack() 行索引→列索引
参数 | 类型 | 说明 |
level | int string list | -1 默认值 默认将最内层的行索引转换为最内层的列索引 |
fill_value | value | replace NaN with this value if the unstack produces missing values |
>>> df
one a 1.0
b 2.0
two a 3.0
b 4.0
# 如果索引是多重的,可以指定"压缩"哪一层的索引
# - 行索引,从0开始,最左边最小为0
# - 列索引,从0开始,最上边最小为0
# 也可以不用0和1..等,用索引层的名字
# 数字和名字但不能混用,但是可以同时指定多个level值
# 摘自 weijian001 的CSDN 博客
>>> df.unstack() / df.unstack(level=-1) / df.unstack(level=1)
a b
one 1.0 2.0
two 3.0 4.0
>>> df.unstack(level=0)
one two
a 1.0 3.0
b 2.0 4.0
#这个不太懂哎 o(╥﹏╥)o
#只有一个行索引的情况时,返回一个Series对象
>>> df1
one two
a 1.0 3.0
b 2.0 4.0
>>> df1.unstack()
one a 1.0
b 2.0
two a 3.0
b 4.0
>>> df2
A weight height
B kg m
cat 1.0 2.0
dog 3.0 4.0
>>> df2.unstack()
A B
weight kg cat 1.0
dog 3.0
height m cat 2.0
dog 4.0