啊,大海啊,全是水

pandas啊,全是坑

没错,今天继续学习难的

其实从这篇开始,每一篇都是难得......

你必须要努力看了

文末有彩蛋

分层/多级索引

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

这个创建,办法有好几个

看一下吧

通过from_tuples创建

import pandas as pd
import random arrays = [['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切片,选择索引的数量

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

明天继续,彩蛋时间

欢迎关注公众号哦

http://t.cn/Ai9HgtwC

今天必须要黑一个网站了

这个网站叫做博x园

发文章的逻辑是这样的

发布的时候

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

看好,自己选择

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

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

重点来了,画重点

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

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

rubbish

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

个人牢骚,不接受反驳

pandas越来越难学,只能自己找趣味了,你该这么学,No.11的更多相关文章

  1. SEO为什么越来越难?

    不是很长的折腾seo该,无脑想如何很长的头发外链,一方面,没有花费的时间SEO在,另一方面SEO越来越难,的另一个方面,也SEO特征,不可控和不可预测性,致使我们花了非常多的情况下,SEO大部分时间都 ...

  2. 学Java,找对圈子,跟对人

    我大学学的是机械专业,到大四才决定要学Java,以后当一名程序员. 到现在,十几年过去了,我现在已经是一家上市公司的技术总监了,管理的技术团队有100多人.很庆幸当初了选择了学Java. 还记得当初学 ...

  3. Problem A: 零起点学算法91——找出一个数组中出现次数最多的那个元素

    #include<stdio.h> int main() { ],b[]={}; while(scanf("%d",&n)!=EOF) { ;i<n;i+ ...

  4. Problem B: 零起点学算法81——找出数组中最大元素的位置(下标值

    #include<stdio.h> int main(void) { ],i,max; while(scanf("%d",&n)!=EOF) { ;i<n ...

  5. 在学react时候找不到static/js/bundle.js

    看如图上面bundle.js,我在项目中和配置文件中都没有找到这个JS文件,然后我就觉得很诧异,然后各种查找,终于找到一篇文章,在此记录一下 第一步:npm run start            ...

  6. 学军中学第三届“图灵杯”趣味网络邀请赛——中级T4.欧拉回路 (图论,哈希)

    题面 补题链接 7 5 6 7 1 2 3 3 13 5 30 50 10 30 70 8 题解 存在欧拉回路的条件是:1. 每个点的度数都是偶数.2. 有边的连通块最多一个. 数据范围是允许我们 n ...

  7. Python入门必学知识,30万年薪Python工程师带你学

    Python是一种计算机编程语言.计算机编程语言和我们日常使用的自然语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序决不能 ...

  8. 区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》

    区块链DApp正在经历市场洗礼,常言道,对抗动荡最稳妥的是稳扎稳打的技术学习,不能临时抱佛脚. 马化腾说:互联网会像水和电一样融入我们的生活.而区块链呢?它是价值互联网的基石,是未来必然的趋势,也会像 ...

  9. 看一篇,学一篇,今日份的pandas,你该这么学!No.2

    开篇先嘚啵 昨天写到哪了? 睡醒就忘了... ... 不过聪明伶俐的博主,仅用1秒钟就想起来了 我们昨天学了一个pandas的类型series 并且会创建了,厉不厉害 对于一个新的数据结构来说 额,不 ...

随机推荐

  1. C语言学习系列(四)C语言基本语法和数据类型

    一.基本语法 C的令牌(Tokens) C 程序由各种令牌组成,令牌可以是关键字.标识符.常量.字符串值,或者是一个符号. 关键字(保留字) auto else long switch break e ...

  2. rxjs入门指南

    使用场景 在复杂的,频繁的异步请求场景,使用rxjs. 在依赖的多个异步数据,决定渲染的情景,使用rxjs. 总之:在前台频繁的.大量的.和后台数据交互的复杂项目里面,使用rxjs(web端,iOS, ...

  3. centos7 配置静态ip时出现双ip问题解决

    1.先用ifconfig,看看有几个网卡 2.执行vi /etc/sysconfig/network-scripts/ifcfg-eth0最后的网卡名字改为实际的 3.静态ip只需要设置着几个地方,B ...

  4. SpringMVC配置数据验证(JSR-303)

    这篇文章已经过时了. 请参考比较合适的前后端交互方式. 1.pom.xml中追加hibernate-validator 2.在dto类的域上追加JSR-303的注解 public class Data ...

  5. sublime 3 text 中运行Java

    1.首先确保JDK安装和配置完成 2.在JDK的bin目录下添加runJava.bat文件 @echo offcd %~dp1echo Compiling %~nx1...if exist %~n1. ...

  6. idea将项目打成jar包

    在用jmeter做压测时,需要将项目打成jar包放至在如下目录 /Users/admin/Documents/software/apache-jmeter-5.1.1/apache-jmeter-5. ...

  7. Codeforces 1276C/1277F/1259F Beautiful Rectangle (构造)

    题目链接 http://codeforces.com/contest/1276/problem/C 题解 嗯,比赛结束前3min想到做法然后rush不出来了--比赛结束后又写了15min才过-- 以下 ...

  8. Redis 的几种常见使用方式

    常见使用方式 Redis 的几种常见使用方式包括: Redis 单副本 Redis 多副本(主从) Redis Sentinel(哨兵) Redis Cluster Redis 自研 各种使用方式的优 ...

  9. oracle 常用工具类及函数

    j_param json; jl_keys json_list; -- 创建json对象j_param j_param := json(p_in_str); -- 校验param域是否缺少必填参数 j ...

  10. 调用subprocess 使用logging打印日志

    #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Henry 17607168727@163.com import sys import lo ...