pandas-04 多级index操作
pandas-04 多级index操作
在pandas中可以为series和dataframe设置多个index,也就是说可以有多级index和column。这样可以对pandas的操作更加灵活。
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
np.random.seed(666)
# series 中的 index
s1 = Series(np.random.randn(6), index=[['1', '1', '1', '2', '2', '2'], ['a', 'b', 'c', 'a', 'b', 'c']])
print(s1)
'''
1 a 0.824188
b 0.479966
c 1.173468
2 a 0.909048
b -0.571721
c -0.109497
dtype: float64
'''
print(s1['1']) # 可以 获取 index 为 1 的 series
'''
a 0.824188
b 0.479966
c 1.173468
dtype: float64
'''
print(s1['1']['a']) # 0.8241880833175302
print(s1[:, 'a'])
''' 同样是一个 series
1 0.824188
2 0.909048
dtype: float64
'''
# 多级的Series, 可以转化为一个 dataframe
df1 = s1.unstack() # 二级series 可以转化dataframe
print(df1)
'''
a b c
1 0.824188 0.479966 1.173468
2 0.909048 -0.571721 -0.109497
'''
df2 = DataFrame([s1['1'], s1['2']])
print(df2)
'''
a b c
0 0.824188 0.479966 1.173468
1 0.909048 -0.571721 -0.109497
'''
# dataframe 转化为 series
s2 = df1.unstack()
print(s2)
'''
a 1 0.824188
2 0.909048
b 1 0.479966
2 -0.571721
c 1 1.173468
2 -0.109497
dtype: float64
'''
s2 = df1.T.unstack()
print(s2)
'''
1 a 0.824188
b 0.479966
c 1.173468
2 a 0.909048
b -0.571721
c -0.109497
dtype: float64
'''
# 创建 一个 多级的 dataframe
df = DataFrame(np.arange(16).reshape(4, 4), index=[['a', 'a', 'b', 'b'], [1, 2, 1, 2]], \
columns=[['beijing', 'beijing', 'shanghai', 'shanghai'], [8, 9, 8, 9]]
)
print(df)
'''
beijing shanghai
8 9 8 9
a 1 0 1 2 3
2 4 5 6 7
b 1 8 9 10 11
2 12 13 14 15
'''
# 访问 多级 dataframe 的元素
print(df['beijing']) # 返回 也是一个 dataframe
'''
8 9
a 1 0 1
2 4 5
b 1 8 9
2 12 13
'''
print(df['beijing'][8]) # 访问dataframe和访问Series的方法一样
'''
a 1 0
2 4
b 1 8
2 12
Name: 8, dtype: int64
'''
pandas-04 多级index操作的更多相关文章
- 利用SolrJ操作solr API完成index操作
使用SolrJ操作Solr会比利用httpClient来操作Solr要简单.SolrJ是封装了httpClient方法,来操作solr的API的.SolrJ底层还是通过使用httpClient中的方法 ...
- ES6.3.2 index操作源码流程
ES 6.3.2 index 操作源码流程 client 发送请求 TransportBulkAction#doExecute(Task,BulkRequest,listener) 解析请求,是否要自 ...
- ElasticSearch Index操作源码分析
ElasticSearch Index操作源码分析 本文记录ElasticSearch创建索引执行源码流程.从执行流程角度看一下创建索引会涉及到哪些服务(比如AllocationService.Mas ...
- python. pandas(series,dataframe,index) method test
python. pandas(series,dataframe,index,reindex,csv file read and write) method test import pandas as ...
- pandas数据结构之DataFrame操作
这一次我的学习笔记就不直接用官方文档的形式来写了了,而是写成类似于“知识图谱”的形式,以供日后参考. 下面是所谓“知识图谱”,有什么用呢? 1.知道有什么操作(英文可以不看) 2.展示本篇笔记的结构 ...
- pandas数据结构之series操作
阅读之前假定你已经有了python内置的list和dict的基础.这里内容几乎是官方文档的翻译版本. 概览: 原来的文档是在一个地方,那边的代码看起来舒服些 https://www.y ...
- pandas(一)操作Series和DataFrame的基本功能
reindex:重新索引 pandas对象有一个重要的方法reindex,作用:创建一个适应新索引的新对象 以Series为例 >>> series_obj = Series([4. ...
- Pandas | 04 Panel 面板
面板(Panel)是3D容器的数据.面板数据一词来源于计量经济学,部分源于名称:Pandas - pan(el)-da(ta)-s. 3轴(axis)这个名称旨在给出描述涉及面板数据的操作的一些语义. ...
- Pandas 之 DataFrame 常用操作
import numpy as np import pandas as pd This section will walk you(引导你) through the fundamental(基本的) ...
随机推荐
- Cesium原理篇:6 Render模块(3: Shader)【转】
https://www.cnblogs.com/fuckgiser/p/5975274.html 在介绍Renderer的第一篇,我就提到WebGL1.0对应的是OpenGL ES2.0,也就是可编程 ...
- chmod: changing permissions of ‘/etc/fstab': Read-only file system
给passwd文件加权限,修改/etc/fstab目录下所有的文件夹属性为可写可读可执行,执行以下命令:chomd 777 /etc/fstab 的时候提示错误: chmod: changing pe ...
- Tensorflow不能使用GPU的解决办法
转载:https://blog.csdn.net/kudou1994/article/details/86735451 服务器在训练模型,另一边我在瞎胡乱搞不晓得咋个搞的,就不能使用GPU了.pyth ...
- github 体积限制
github 体积限制 仅供了解,切勿滥用.希望自觉维护良好社区. 单文件 单个文件大于 50M 时会收到警告, 100M 时会被拒绝. 该警告将告诉您哪些文件太大: remote: warning: ...
- 在条件判断中使用 all() / any()
在条件判断中使用 all() / any() all() 和 any() 两个函数非常适合在条件判断中使用.这两个函数接受一个可迭代对象,返回一个布尔值,其中: all(seq):仅当 seq 中所有 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器和EasyDSS云平台异同
背景分析 不同于EasyDSS流媒体服务器与EasyDSS流媒体解决方案(EasyDSS流媒体解决方案就是通过EasyDSS流媒体服务器完善业务层研发而来),EasyDSS流媒体服务器和EasyDSS ...
- java https post请求并忽略证书,参数放在body中
1 新建java类,作用是绕过证书用 package cn.smartercampus.core.util; import java.security.cert.CertificateExceptio ...
- jstree:重新加载数据集,刷新树
true:表示获得一个已经存在的jstree实例 $('#tree').jstree(true).destroy();// 清除树节点 // 重新设置树的JSON数据集 $('#tree').jstr ...
- WeQuant教程—1.2 从简单的量化系统开始
你大概知道量化的思想最早在古巴比伦人计算行星轨迹的时候就已经诞生(算术运算),后来借助古希腊的形式化逻辑的发展,人们日益能从量化的思想中提炼和描述自然规律并运用到生产之中.不过,基于量化的思想打造一个 ...
- react 常用组件整理
0.es6语法糖 deptList = deptnameList.filter(item => item.rel ===this.state.thUser.orgId);//返回一个新的数组对象 ...