欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Pandas_数据重构stack教程

程序员文章站 2022-04-11 22:03:20
import numpy as np import pandas as pd stack 将行索引旋转为列索引,完成层级索引。 下面例子中,先创建一盒5 × 2 的Da...
import numpy as np
import pandas as pd
stack

将行索引旋转为列索引,完成层级索引。

下面例子中,先创建一盒5 × 2 的DataFrame。

然后对它进行stack,于是原来的行索引变成了外层索引,原来的列索引变成了内层索引了。

df_obj = pd.DataFrame(np.random.randint(0,10, (5,2)), columns=['data1', 'data2'])
print df_obj
   data1  data2
0      9      0
1      7      4
2      6      1
3      2      7
4      9      1
stacked = df_obj.stack()
print stacked
0  data1    9
   data2    0
1  data1    7
   data2    4
2  data1    6
   data2    1
3  data1    2
   data2    7
4  data1    9
   data2    1
dtype: int64

打印重构之后的数据类型,发现已经从DataFrame转变为了Series类型了。

打印新数据的Index的类型,发现索引的格式变成了多层索引了。

print type(stacked)
print type(stacked.index)

unstack

unstack会默认多层索引的series转变为DataFrame,默认情况下是对内索引进行操作,即将内所有转变为DataFrame的列索引。

也可以指定操作的索引级别。lavel=0表示操作外层索引。

# 默认操作内层索引
print stacked.unstack()
   data1  data2
0      9      0
1      7      4
2      6      1
3      2      7
4      9      1
# 通过level指定操作索引的级别
print stacked.unstack(level=0)
       0  1  2  3  4
data1  9  7  6  2  9
data2  0  4  1  7  1