python dataframe 获取index列_Python数据处理:五分钟掌握pandas多级索引「附源码」...

20d57dfdd2682ae01765741757dc6ecb.png

如果我们可以用含多级 索引的一维 Series 数据表示二维数据,那么我们就可以用 Series 或 DataFrame 表示三维 甚至更高维度的数据。多级索引每增加一级,就表示数据增加一维,利用这一特点就可以 轻松表示任意维度的数据了

一、创建一个多层索引的series

普通方法通过元组构成Series的多级索引

index= [('深圳', 2000), ('深圳', 2010), ('上海', 2000), ('上海', 2010), ('广东', 2000), ('广东', 2010)]populations= [33871648, 37253956, 18976457, 19378102, 20851820, 25145561]pop= pd.Series(populations, index=index)pop

代码结果:

(深圳, 2000) 33871648(深圳, 2010) 37253956(上海, 2000) 18976457(上海, 2010) 19378102(广东, 2000) 20851820(广东, 2010) 25145561dtype: int64

通过MultiIndex方法通过元组构成的多级索引

index= pd.MultiIndex.from_tuples(index)index

代码结果:

MultiIndex(levels=[['上海', '广东', '深圳'], [2000, 2010]], labels=[[2, 2, 0, 0, 1, 1], [0, 1, 0, 1, 0, 1]])

unstack() 方法可以快速将一个多级索引的 Series 转化为普通索引的 DataFrame

pop_df= pop.unstack()pop_df

a6bedecb93ec75ad04b2bc08b4c0537f.png

stack() 方法实现相反的效果

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值