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操作的更多相关文章

  1. 利用SolrJ操作solr API完成index操作

    使用SolrJ操作Solr会比利用httpClient来操作Solr要简单.SolrJ是封装了httpClient方法,来操作solr的API的.SolrJ底层还是通过使用httpClient中的方法 ...

  2. ES6.3.2 index操作源码流程

    ES 6.3.2 index 操作源码流程 client 发送请求 TransportBulkAction#doExecute(Task,BulkRequest,listener) 解析请求,是否要自 ...

  3. ElasticSearch Index操作源码分析

    ElasticSearch Index操作源码分析 本文记录ElasticSearch创建索引执行源码流程.从执行流程角度看一下创建索引会涉及到哪些服务(比如AllocationService.Mas ...

  4. python. pandas(series,dataframe,index) method test

    python. pandas(series,dataframe,index,reindex,csv file read and write) method test import pandas as ...

  5. pandas数据结构之DataFrame操作

    这一次我的学习笔记就不直接用官方文档的形式来写了了,而是写成类似于“知识图谱”的形式,以供日后参考. 下面是所谓“知识图谱”,有什么用呢? 1.知道有什么操作(英文可以不看) 2.展示本篇笔记的结构 ...

  6. pandas数据结构之series操作

    阅读之前假定你已经有了python内置的list和dict的基础.这里内容几乎是官方文档的翻译版本.   概览: ​   原来的文档是在一个地方,那边的代码看起来舒服些   https://www.y ...

  7. pandas(一)操作Series和DataFrame的基本功能

    reindex:重新索引 pandas对象有一个重要的方法reindex,作用:创建一个适应新索引的新对象 以Series为例 >>> series_obj = Series([4. ...

  8. Pandas | 04 Panel 面板

    面板(Panel)是3D容器的数据.面板数据一词来源于计量经济学,部分源于名称:Pandas - pan(el)-da(ta)-s. 3轴(axis)这个名称旨在给出描述涉及面板数据的操作的一些语义. ...

  9. Pandas 之 DataFrame 常用操作

    import numpy as np import pandas as pd This section will walk you(引导你) through the fundamental(基本的) ...

随机推荐

  1. Mybatis的if标签判断空字符串 == 0,参数为0时会自动转为空字符串

    对于这个问题,有两种解决办法. 1.当传入的参数有0时,只判断!=null即可. 2.将0转化为String类型,就可以解决这个问题.

  2. jsch配置sftp服务器ssh免密登录

    前期对接了一个通过ssh免密登录的需求,是基于原先密码登录sftp服务器的代码上进行改造,实际上代码改动量非常少,趁此机会对自己整理的资料做一下总结. 1. 什么是SFTP SFTP是一个安全文件传送 ...

  3. 取response里 Json格式的字段值

    1.

  4. RedHat 7关闭防火墙方法

    1.在之前的版本中关闭防火墙等服务的命令是 service iptables stop /etc/init.d/iptables stop 2.RHEL7开始,使用systemctl工具来管理服务程序 ...

  5. WMS 162服务器空间满,清日志

    /usr/local/tomcat-ibus/logs/usr/local/tomcat-ibus/bin/logs/usr/local/tomcat-api/bin/logs/usr/local/t ...

  6. 伪造他人账号信息提交数据问题(一般接口都会去校验身份和身份id是否一致)

    某APP客户端可以劫持任意账号 双师: 上课的学生上报学生上课状态,请求中带学生自己的id,当切换成其他学生的id ,接口报错,应该会校验token 和 提交的学生id 是否一致

  7. C++内存管理1-64位系统运行32位软件会占用更多的内存吗?

    随着大容量内存成为电脑平台常规化的配置,在配置组装机时很多的用户都会选择8GB甚至是16GB的容量规格内存使用在自己的机器上,如果要将这8GB甚至是16GB的内容在系统使用时能充分利用起来的话,你平台 ...

  8. 关于千里马招标网知道创宇反爬虫521状态码的解决方案(python代码模拟js生成cookie _clearence值)

    一.问题发现 近期我在做代理池的时候,发现了一种以前没有见过的反爬虫机制.当我用常规的requests.get(url)方法对目标网页进行爬取时,其返回的状态码(status_code)为521,这是 ...

  9. (转)mysql使用Navicat 导出和导入数据库

    mysql使用Navicat 导出和导入数据库 ps:在导入本地数据库的时候,要先建立相同的数据库,然后再运行sql文件,即可导入相应的数据库

  10. 浅谈PHP中pack、unpack的详细用法

    转自:https://segmentfault.com/a/1190000008305573 PHP中有两个函数pack和unpack,很多PHPer在实际项目中从来没有使用过,甚至也不知道这两个方法 ...