首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据分析之pandas(四)

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])。

好了,这就是今天的全部内容,下次再会。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190210G0II0700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券