层次化索引 层次化也就是在一个轴上拥有多个索引级别 Series的层次化索引 data=Series(np.random.randn(10),index=[ ['a','a','a','b','b','b','c','c','d','d'], [1,2,3,1,2,3,1,2,2,3] ]) data a 1 0.965999 2 -0.271733 3 0.133910 b 1 -0.806885 2 -0.622905 3 -0.355330 c 1 -0.659194 2 -1.08287…
索引.选取和过滤 大部分的查询用法 类型 说明 obj[val] 选取DataFrame的单个列或一组列 obj.ix[val] 选取DataFrame的单个行或一组行 obj.ix[:,val] 选取单个列或列子集 obj.ix[val1,val2] 同时选取行和列 reindex方法 将一个或多个轴匹配到新索引 xs方法 根据标签选取单行或单列,并返回一个Series icol.irow方法 根据整数位置选取单列或单行,并返回Series get_value.set_value方法 根据行标…
1. 删除列层次化索引 用pandas利用df.groupby.agg() 做聚合运算时遇到一个问题:产生了列方向上的两级索引,且需要删除一级索引.具体代码如下: # 每个uesr每天消费金额统计:和.均值.最大值.最小值.消费次数.消费种类. action_info = student_action.groupby(['outid','date']).agg({'opfare':['sum','mean','max','min'], 'acccode':['count','unique'],}…
pandas用浮点值Nan表示浮点和非浮点数组中的缺失数据.它只是一个便于被检测的标记而已. >>> string_data = Series(['aardvark','artichoke',np.nan,'avocado']) >>> string_data 0 aardvark 1 artichoke 2 NaN 3 avocado dtype: object >>> string_data.isnull() 0 False 1 False 2 T…
Pandas层次化索引 1. 创建多层索引 隐式索引: 常见的方式是给dataframe构造函数的index参数传递两个或是多个数组 Series也可以创建多层索引 Series多层索引 B =Series(np.random.randint(0,150,size=10),index=pd.MultiIndex.from_product([list("ABCDE"),["期中","期末"]])) B Dataframe多层索引的创建(推荐使用)…
pandas层次化索引 1. 创建多层行索引 1) 隐式构造 最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组 Series也可以创建多层索引 import numpy as np import pandas as pd from pandas import Series,DataFrame s = Series(data = [1,2,3,"a"], index = [["a","a","b",…
  层次化索引 层次化索引指你能在一个数组上拥有多个索引,例如: 有点像Excel里的合并单元格对么? 根据索引选择数据子集   以外层索引的方式选择数据子集: 以内层索引的方式选择数据: 多重索引Series转换为DataFrame   层次化索引在数据重塑和分组中扮演着很重要的角色,例如,上面的层次化索引数据可以转换为一个DataFrame: 对于一个DataFrame,横轴和竖轴都可以有层次化索引,例如: 重排分级顺序 根据索引交换 swaplevel()函数可以将两个级别的数据进行交换,…
申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. 层次化索引主要解决低纬度形式处理高纬度数据的问题 import pandas as pd import numpy as np from pandas import Series,DataFrame data = Series(np.random.randn(12),index=[['],['张三','李四','王五','张三','李四','王五','张三','李四','王五','张三…
groupby出来对象并不是dataFrame,所以直接print是看不到矩阵或者高维矩阵的,所以需要用能够产生标量值的方法去处理groupby对象,这样可以利用矩阵形式处理高维数据: 这样groupby在产生标量值数据后就变成了dataFrame对象,这个过程也可以用apply或者applymap完成,但生成标量数据的目的是不会变的,就是为了最终把groupby对象变为层次化索引对象: 层次化索引对象在标签使用上与低维的dataFrame其实并没有很大差距,利用index属性可以得到multi…
http://blog.csdn.net/pipisorry/article/details/53486777 pandas高级功能:面板数据.字符串方法.分类.可视化. 面板数据 {pandas数据结构有一维Series,二维DataFrame,这是三维Panel}pandas有一个Panel数据结构,可以将其看做一个三维版的,可以用一个由DataFrame对象组成的字典或一个三维ndarray来创建Panel对象:import pandas.io.data as webpdata = pd.…
  重新索引   pandas对象的一个重要方法是 reindex ,其作用是创建一个适应新索引的新对象. #reindex函数的参数 reindex(index,method,fill_value,limit,level,copy) #index:用作索引的新序列 #method:插值(填充)方式 #fill_value:在重新索引的过程中,需要引入缺失值时使用的代替值 #limit:前向或后向填充时的最大填充量 #level:在MultiIndex的指定级别上匹配简单索引,否则选取其子集 #…
1.序言 如何切片,切块,以及通常获取和设置pandas对象的子集 2.索引的不同选择 对象选择已经有许多用户请求的添加,以支持更明确的基于位置的索引.Pandas现在支持三种类型的多轴索引. .loc主要是基于标签的,但也可以与布尔数组一起使用.当找不到物品时.loc会提高KeyError.允许的输入是: 单个标签,例如5或'a'(注意,它5被解释为索引的 标签.此用法不是索引的整数位置.). 列表或标签数组.['a', 'b', 'c'] 带标签的切片对象'a':'f'(注意,相反普通的Py…
Pandas基本功能详解 Pandas  Pandas基本功能详解 |轻松玩转Pandas(2) 参考:Pandas基本功能详解 |轻松玩转Pandas(2)…
重新索引 reindex重置索引,如果索引值不存在,就引入缺失值 参数介绍 参数 说明 index 用作索引的新序列 method 插值 fill_vlaue 引入缺失值时的替代NaN limit 最大填充量 level 指定级别上匹配简单索引,否则选取子集 copy 默认为True 实例: import pandas as pd import numpy as np from pandas import Series obj = Series([4.5,7.2,-5.3,3.6],index=…
到目前为止,我们了解了三种Pandas数据结构以及如何创建它们.接下来将主要关注数据帧(DataFrame)对象,因为它在实时数据处理中非常重要,并且还讨论其他数据结构. 系列基本功能 编号 属性或方法 描述 1 axes 返回行轴标签列表. 2 dtype 返回对象的数据类型(dtype). 3 empty 如果系列为空,则返回True. 4 ndim 返回底层数据的维数,默认定义:1. 5 size 返回基础数据中的元素数. 6 values 将系列作为ndarray返回. 7 head()…
多级索引:在一个轴上有多个(两个以上)的索引,能够以低维度形式来表示高维度的数据.单级索引是Index对象,多级索引是MultiIndex对象. 一.创建多级索引 方法一:隐式创建,即给DataFrame的index或columns参数传递两个或更多的数组. df1 = pd.DataFrame(np.random.randint(80, 120, size=(2, 4)), index= ['girl', 'boy'], columns=[['English', 'English', 'Chi…
在使用Pandas之前,需要导入pandas库 import pandas  as pd #pd作为pandas的别名 常用功能如下: 代码 功能1 .DataFrame()   创建一个DataFrame对象2 .df.values 返回ndarray类型的对象3. df.index           获取行索引4 .df.columns    获取列索引5. df.axes  获取行及列索引6. df.T 行与列对调7 .df. info() 打印DataFrame对象的信息8. df.h…
1.读取.csv文件 df2 = pd.read_csv('beijingsale.csv', encoding='gb2312',index_col='id',sep='\t',header=None) 参数解析见:https://www.cnblogs.com/datablog/p/6127000.html index_col用于指定用作行索引的列编号或者列名,sep用于指定文件的分隔符(默认是以,作为分隔符),header=None 不用文件的的第一行作为列索引 文件读取之后生成的是一个D…
算术运算和数据对齐 Series和DataFrame中行运算和列运算有种特征叫做广播 在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集.自动的数据对齐操作在不重叠的索引处引入了NA值,NA值在算术运算中过程中传播. import pandas as pd from pandas import Series import numpy as np s1 = Series([7.3,-2.5,3.4,1.5],index=['a','c','d','e']) s2 = Series…
用Python做数据分析,涉及到的函数实在是太多了,容易忘记,去网上查中文基本上差不到,英文有时候描述不清楚问题. 这里搞个针对个人习惯的函数汇总速查手册,下次需要用一个什么功能,就在这里面查到对应的函数名字,然后取搜索具体用法.随时更新. Numpy 创建: 创建一个随机数组x*y: np.empty(x,y) 产生随机数组,产生指定大小随机数组,指定范围随机数组,均匀分布,数组元素在0到1之间 np.random.uniform(0,100,size=5) -----------Pandas…
在日常工作中,使用Python时经常要引入一些集成好的第三方功能模块,如读写excel的xlrd和xlwt模块,以及数据分析常用的pandas模块等. 原生的python并不含这些模块,在使用这些功能之前必须要先安装这些功能模块. 一.安装python环境 官网下载地址:https://www.python.org/downloads/.windows环境下直接下载exe的可执行文件,按步骤进行安装即可.安装完成后,将安装目录的路径配置到环境变量中的path内容中即可. 二.安装easyinst…
日期功能扩展了时间序列,在财务数据分析中起主要作用.在处理日期数据的同时,我们经常会遇到以下情况 - 生成日期序列 将日期序列转换为不同的频率 创建一个日期范围 通过指定周期和频率,使用date.range()函数就可以创建日期序列. 默认情况下,范围的频率是天.参考以下示例代码 - import pandas as pd datelist = pd.date_range('2020/11/21', periods=5) print(datelist) Python 执行上面示例代码,得到以下结…
1:多重索引的构造 >>> #下面显示构造pd.MultiIndex >>> df1=DataFrame(np.random.randint(0,150,size=(6,3)),columns=['java','html5','python']) >>> import pandas as pd >>> df1=DataFrame(np.random.randint(0,150,size=(6,3)),columns=['java','…
>> df = pd.DataFrame(np.random.randint(0, 10, (5, 4)), columns=list('ABCD')) A B C D 0 0 4 8 4 1 0 7 7 1 2 0 6 1 6 3 1 9 5 2 4 8 4 1 1 0. 转换为 numpy.ndarray 进行索引 >> df.values ⇒ numpy.ndarray # 返回 B 列 >> df.values[:, 1] # dataframe 索引列 >…
一.行多层索引 1.隐式创建 在构造函数中给index.colunms等多个数组实现(datafarme与series都可以) df的多级索引创建方法类似: 2.显式创建pd.MultiIndex 其中.from_arrays为类似上面的参数,推荐使用简单的from_product函数(会自动进行交叉): 二.列多层索引 列多层索引同理:  三.多层索引操作与切片 1.Series多层索引 使用中括号和loc效果完全一样: 切片,只切第一级索引,与之前一致,需要指定某些指定行时,可以通过iloc…
知识点 Series只有行索引,而DataFrame对象既有行索引,也有列索引 行索引,表明不同行,横向索引,叫index,0轴,axis=0 列索引,表明不同列,纵向索引,叫columns,1轴,axis=1 1.DataFrame创建,可以通过index和columns指定索引名称 #方式一a = pd.DataFrame(np.arange(10).reshape(2,5)) print(a) #方式二 a = pd.DataFrame(np.arange(10).reshape(2,5)…
在pandas中,经常对数据进行处理 而导致数据索引顺序混乱,从而影响数据读取.插入等. 小笔总结了以下几种重置索引的方法: import pandas as pd import numpy as np df = pd.DataFrame(np.arange(20).reshape((5, 4)),columns=['a', 'b', 'c', 'd']) #得到df: a b c d 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15 4 16 17 1…
目录 一.索引概念 二.创建索引 ①导入数据时指定索引 ②导入数据后指定索引df.set_index() 三.常用的索引属性 四.常用索引方法 五.索引重置reset_index() 六.修改索引值(修改列名) 一.索引概念   "索引"类似一本书的目录(页码),通过目录(页码),让我们能快速找到想看的位置.对于一个DataFrame数据框,其中: 行索引(Label index),是一条完整数据的索引,通过这个索引,能快速取出对应的某条数据记录. 列索引(Columns Names)…
pandas学习(创建多层索引.数据重塑与轴向旋转) 目录 创建多层索引 数据重塑与轴向旋转 创建多层索引 隐式构造 Series 最常见的方法是给DataFrame构造函数的index参数传递两个或更多的数组,Series也可以创建多层索引. s = Series(np.random.randint(0,150,size=6),index=[['a','a','b','b','c','c'],['期中','期末','期中','期末','期中','期末']]) # 输出 a 期中 59 期末 4…
从头到尾都是手码的,文中的所有示例也都是在Pycharm中运行过的,自己整理笔记的最大好处在于可以按照自己的思路来构建矿建,等到将来在需要的时候能够以最快的速度看懂并应用=_= 注:为方便表述,本章设s为pandas.core.series.Series的一个实例化对象,设df为pandas.core.frame.DataFrame的一个实例化对象 1. Pandas简介 Pandas是基于NumPy的python数据分析库,最初被作为金融数据分析工具而开发出来,因此Pandas为时间序列分析提…