博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pandas越来越难学,只能自己找趣味了,你该这么学,No.11
阅读量:5281 次
发布时间:2019-06-14

本文共 2221 字,大约阅读时间需要 7 分钟。

啊,大海啊,全是水

pandas啊,全是坑

没错,今天继续学习难的
其实从这篇开始,每一篇都是难得......
你必须要努力看了

文末有彩蛋

分层/多级索引

我们先创建一个分层索引,看看效果

这个创建,办法有好几个

看一下吧

在这里插入图片描述

通过from_tuples创建

import pandas as pdimport randomarrays = [['bar','bar','baz','baz','foo','foo'],['one','two','one','two','one','two']]tuples = list(zip(*arrays))print(tuples)index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])print(index)s = pd.Series([3,1,4,1,5,9],index=index)print(s)

通过调用pd.MultiIndex.from_tuples我们可以传入一个元组列表搞定

也可以采用两个迭代中的每个元素配对

使用MultiIndex.from_product

iterables = [['bar','baz','foo'],['one','two']]index = pd.MultiIndex.from_product(iterables,names=['first','second'])print(index)

效果是一样的哦

在来一个比较方便的,生成一个多层索引

直接将列表传递到Series或者DataFrame中去看看

arrays = [['bar','bar','baz','baz','foo','foo'],          ['one','two','one','two','one','two']]s = pd.Series([3,1,4,1,5,9],index=arrays)print(s)

看好这个一一对应的关系就好了

在这里插入图片描述
用到dataframe上,也是一样的哦
没啥区别

在这里插入图片描述

最新的0.24版本的pandas里面

看,写就写最新的

增加了一个方法

MultiIndex.from_frame

MultiIndex.from_frame(df, sortorder=None, names=None)

使用起来,比较清晰

df = pd.DataFrame([['A','nice'],['A','to'],                  ['B','good'],['B','ye']],                  columns=['first','second'])print(df)index = pd.MultiIndex.from_frame(df)print(index)

注意啊,这个是0.24版本以上的pandas可以用

小注意

所有的MultiIndex构造函数都接收一个names参数,该参数存储index自己的名称,如果没有传递,默认值为None

索引可以设置在pandas对象的任意轴上

这种情况,直接抛栗子就好了

data = [[1,2,4,5,6,7],[1,2,3,4,5,6]]arrays = [['bar','bar','baz','baz','foo','foo'],          ['one','two','one','two','one','two']]tuples = list(zip(*arrays))index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])df = pd.DataFrame(data,index=['A','B'],columns=index)print(df)

查阅结果,看到columns 列名,已经被修改成多级的

在这里插入图片描述
如果你要继续尝试,别着急,新的代码来了

data = [[1,2,4,5],[1,2,3,4]]arrays = [['bar','bar','baz','baz','foo','foo'],          ['one','two','one','two','one','two']]tuples = list(zip(*arrays))index = pd.MultiIndex.from_tuples(tuples,names=['first','second'])df = pd.DataFrame(data,index=['A','B'],columns=index[:4])print(df)

直接使用index切片,选择索引的数量

好了,多层索引先写到这里啦

明天继续,彩蛋时间

欢迎关注公众号哦

在这里插入图片描述

今天必须要黑一个网站了

这个网站叫做博x园

发文章的逻辑是这样的

发布的时候

用户可以自己选择是否上传首页

看好,自己选择

然后,管理员在把“不好”的删掉

用什么定义不好呢?这要看“权限狗们”如何看待了

重点来了,画重点

它不但删你的文章,还封禁你推送的功能

一句话,你随便发,我随便封

rubbish

以后如果测试压力代码,全部往垃圾园扔

个人牢骚,不接受反驳

转载于:https://www.cnblogs.com/happymeng/p/11078028.html

你可能感兴趣的文章
0925 韩顺平java视频
查看>>
iOS-程序启动原理和UIApplication
查看>>
mysql 8.0 zip包安装
查看>>
awk 统计
查看>>
模板设计模式的应用
查看>>
实训第五天
查看>>
平台维护流程
查看>>
2012暑期川西旅游之总结
查看>>
12010 解密QQ号(队列)
查看>>
2014年辛星完全解读Javascript第一节
查看>>
装配SpringBean(一)--依赖注入
查看>>
java选择文件时提供图像缩略图[转]
查看>>
方维分享系统二次开发, 给评论、主题、回复、活动 加审核的功能
查看>>
Matlab parfor-loop并行运算
查看>>
string与stringbuilder的区别
查看>>
2012-01-12 16:01 hibernate注解以及简单实例
查看>>
iOS8统一的系统提示控件——UIAlertController
查看>>
PAT甲级——1101 Quick Sort (快速排序)
查看>>
python创建进程的两种方式
查看>>
1.2 基础知识——关于猪皮(GP,Generic Practice)
查看>>