pandas越来越难学,只能自己找趣味了,你该这么学,No.11
啊,大海啊,全是水
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切片,选择索引的数量
好了,多层索引先写到这里啦
明天继续,彩蛋时间
欢迎关注公众号哦
今天必须要黑一个网站了
这个网站叫做博x园
发文章的逻辑是这样的
发布的时候
用户可以自己选择是否上传首页
看好,自己选择
然后,管理员在把“不好”的删掉
用什么定义不好呢?这要看“权限狗们”如何看待了
重点来了,画重点
它不但删你的文章,还封禁你推送的功能
一句话,你随便发,我随便封
rubbish
以后如果测试压力代码,全部往垃圾园扔
个人牢骚,不接受反驳
pandas越来越难学,只能自己找趣味了,你该这么学,No.11的更多相关文章
- SEO为什么越来越难?
不是很长的折腾seo该,无脑想如何很长的头发外链,一方面,没有花费的时间SEO在,另一方面SEO越来越难,的另一个方面,也SEO特征,不可控和不可预测性,致使我们花了非常多的情况下,SEO大部分时间都 ...
- 学Java,找对圈子,跟对人
我大学学的是机械专业,到大四才决定要学Java,以后当一名程序员. 到现在,十几年过去了,我现在已经是一家上市公司的技术总监了,管理的技术团队有100多人.很庆幸当初了选择了学Java. 还记得当初学 ...
- Problem A: 零起点学算法91——找出一个数组中出现次数最多的那个元素
#include<stdio.h> int main() { ],b[]={}; while(scanf("%d",&n)!=EOF) { ;i<n;i+ ...
- Problem B: 零起点学算法81——找出数组中最大元素的位置(下标值
#include<stdio.h> int main(void) { ],i,max; while(scanf("%d",&n)!=EOF) { ;i<n ...
- 在学react时候找不到static/js/bundle.js
看如图上面bundle.js,我在项目中和配置文件中都没有找到这个JS文件,然后我就觉得很诧异,然后各种查找,终于找到一篇文章,在此记录一下 第一步:npm run start ...
- 学军中学第三届“图灵杯”趣味网络邀请赛——中级T4.欧拉回路 (图论,哈希)
题面 补题链接 7 5 6 7 1 2 3 3 13 5 30 50 10 30 70 8 题解 存在欧拉回路的条件是:1. 每个点的度数都是偶数.2. 有边的连通块最多一个. 数据范围是允许我们 n ...
- Python入门必学知识,30万年薪Python工程师带你学
Python是一种计算机编程语言.计算机编程语言和我们日常使用的自然语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序决不能 ...
- 区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》
区块链DApp正在经历市场洗礼,常言道,对抗动荡最稳妥的是稳扎稳打的技术学习,不能临时抱佛脚. 马化腾说:互联网会像水和电一样融入我们的生活.而区块链呢?它是价值互联网的基石,是未来必然的趋势,也会像 ...
- 看一篇,学一篇,今日份的pandas,你该这么学!No.2
开篇先嘚啵 昨天写到哪了? 睡醒就忘了... ... 不过聪明伶俐的博主,仅用1秒钟就想起来了 我们昨天学了一个pandas的类型series 并且会创建了,厉不厉害 对于一个新的数据结构来说 额,不 ...
随机推荐
- 快速了解AMD、CMD、CommonJS、ESM
1.ES6 Module javascript在ES2015(ES6)中出现了语言层面的模块(module). ES6的模块既可以用于浏览器端,也可以用于服务器端(nodeJS). ES6模块是静态化 ...
- CF922D Robot Vacuum Cleaner 贪心+排序
正确的贪心方法:按照比例排序. code: #include <bits/stdc++.h> #define N 200000 #define ll long long #define s ...
- 使用setUncaughtExceptionHandler在线程外面捕获异常
package com.dwz.concurrency.chapter11; /** * Thread的run方法是不能throw出异常的,只能在日志或者console中打印出来 */ public ...
- spring boot + swagger2
spring boot集成swagger2: swagger2是一个基于restful的开源设计,构建,文档,访问的开源工具集.开发中它的在线可视化文档功能,可以动态生成文档,简化前后对接工作 ...
- springboot之搭建第一个helloworld程序
1.下载基本框架 在网站:https://start.spring.io/ 全部默认,基本没有改动 选择依赖,当然也可以自己在pom.xml加,我们直接在这里选择. 只选择Spring Web Sta ...
- CF1030C
CF1030C 题意: 给你一个数字,问能否拆分成k段,使得每一段的每一位数字相加结果相等. 解法: 考虑数位DP. 暴力按位考虑每一位是否满足条件 CODE: #include<cstdio& ...
- vue后台_登录权限
登录权限控制包含着这么几个方面的含义: 1)不同的权限对应不同的路由 2)侧边栏需要根据不同的权限,异步生成 登录:使用用户名和密码,登录成功后返回用户的token(防止XSS攻击),将此token存 ...
- Qt内的各种路径(让人迷惑)
Qt里面各种获取程序路径或者当前路径的写法,在此梳理一下,以防今后开发的程序中路径不统一 1.利用QDir获取路径 QDir::currentPath() 此路径是项目编译生成的路径即可执行文件所在目 ...
- Class.ForName()读取配置文件
榨汁机(Juicer)榨汁的案例 分别有水果(Fruit)苹果(Apple)香蕉(Banana)桔子(Orange)榨汁(squeeze) public class Demo_Reflect { /* ...
- iOS如何将RGB565的原始图像数据转为UIImage对象
我们在做一些图像处理时,往往会涉及到RGB565这种图像数据格式.由于其每个像素仅占2个字节,对于不需要像素透明度的情况下使用RGB565既能基本能保证图像的色彩,又能降低图像数据尺寸,节省带宽.因此 ...