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(基本的) ...
 
随机推荐
- [web]   前端一些细节
			
作者:水落斜阳链接:https://www.jianshu.com/p/7a8124fdf945来源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 1, reflow和re ...
 - 我的Mac上有哪些软件
			
工具 Pycharm CE GoLand Chrome 微信 网易云音乐 有道云笔记 iTerm Postman Sublime Text bashrc配置(支持显示git branch以及详细路径信 ...
 - unix_timestamp 时间戳函数用法(hive)
			
pandas和SQL数据分析实战 https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&sha ...
 - 解决:File "/usr/lib/python2.7/site-packages/more_itertools/more.py", line 340     def _collate(*iterables, key=lambda a: a, reverse=False): 的报错
			
cyberb commented on 15 Apr Traceback (most recent call last): File "/snap/users/x1/python/bin/l ...
 - 大数据 -- Hadoop集群环境搭建
			
首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网 ...
 - php提供一维数组模糊查询
			
2019年9月30日14:36:15 提供一维数组模糊查询,只支持utf-8 内部处理是Unicode 编码特殊编码格式的可能会出错 if (!function_exists('arrayFuzzyQ ...
 - django 未成功初始化自定义表单
			
用以下两句 python3 manage.py makemigrations python3 manage.py migrate 成功初始化了数据库,但是只初始化了django自带的表,未初始化我自定 ...
 - React 简介
 - [Mobi] cordova requirements,Exception in thread "main" java.lang.NoClassDefFoundError
			
Cordova App Preparation https://quasar.dev/quasar-cli/developing-cordova-apps/preparation $ cordova ...
 - 【ARM-Linux开发】ARM嵌入式设备Linux系统启动步骤和方式
			
1). 简介 本文简单介绍ARM嵌入式设备基于嵌入式Linux操作系统时候的启动步骤和启动方式, 区别与X86平台,ARM平台下并没有一个标准的启动步骤,不同ARM SoC都会使用各自定义的boot ...