1 层级索引
目前为止,我们讨论的都是1维或2维的数据。但在现实中,我们也经常会遇到更高维的数据,这时,层级索引或者说多层索引就会发挥它的作用。
那么如何来创建一个多层索引呢,最直接的办法就是创建一个由二维数组构成的索引:
除此之外,我们还可以直接创建一些索引对象,随后在index中引用即可:
我们还能给索引设置名称,使用index的names属性即可:
既然有行层级索引,相应的,列也可以有多级索引。创建方法跟行类似,在columns中创建多层索引即可。
如果想要使用切片,则索引必须按顺序排列,可以用sort_index()来进行排序。我们还可以将DataFrame类型的多层索引转换为Series类型的多层索引,用stack()方法就能实现:
而unstack是stack的相反操作,所以再次使用unstack则能回到原数据集的形式:
除此之外,还可以设置不同的索引层级,来进行unstack操作:
还可使用转置:
2 合并数据集
pandas中我们用concat函数来进行合并操作:
上图中我们把两个Series对象合并,默认为axis=0进行合并,而且即使索引重复也会保留。如果要进行水平方向的合并,则需指定axis=1.
另外,如果我们不想要重复的索引,可以在concat函数中设置参数ignore_index为true:
当然,我们也可以合并更高维的数据,比如DataFrame类型的数据集:
我们将上面的df与df1进行合并:
可以看到,在合并时,若列名不同,则会出现NaN。若只希望列名相同的列进行合并,可以设定参数join为inner。(默认为outer,进行全部列的合并)
此外,在进行行方向的合并时,还可以用append来实现,语法更为简洁:
其效果等同于pd.concat([df,df1])。
好了,这就是今天的全部内容,下次再会。
领取专属 10元无门槛券
私享最新 技术干货