版权声明:版权声明: 笔者博客文章主要用来作为学习笔记使用,内容大部分来自于自互联网,并加以归档整理或修改,以方便学习查询使用,只有少许原创,如有侵权,请联系博主删除! https://blog.csdn.net/qq_42642945/article/details/88398725
DataFrame结构
DataFrame对象, 是一个二维的结构,既有行索引,又有列索引
- 行索引,表明不同行,横向索引,叫index
- 列索引,表名不同列,纵向索引,叫columns
DatatFrame的属性
常用属性:
- shape 外形
- index 行标签
- columns 列标签
- values 底层的数据,是numpy的ndarray
- T 转置
例如:
常用方法:
- head():默认显示前5行内容。填入参数N则显示前N行
- tail():默认显示后5行内容。填入参数N则显示后N行
DatatFrame索引的设置
- 修改行列索引值
只能全部替换,不能单个修改
注意:以下修改方式是错误的
正确的方式:
- 重设索引
oreset_index(drop=False)
- 设置新的下标索引
- drop:默认为False,不删除原来索引,如果为True,删除原来的索引值
- 以某列值设置为新的索引
oset_index(keys, drop=True)
- keys : 列索引名成或者列索引名称的列表
- drop : boolean, default True.当做新的索引,删除原来的列
- 以年设置新的索引
- 设置多个索引(复合索引),以年和月份
df.set_index(),把某一列的值用做索引,如果使用多个列的值做索引,那么创建的就是复合索引,复合索引可用于表示多维数据(比如说三维)
注:通过刚才的设置,这样DataFrame就变成了一个具有MultiIndex的DataFrame。
MultiIndex与Panel
打印刚才的df的行索引结果
认识索引
MultiIndex
MultiIndex 多级或分层索引对象。
多级索引(也称层次化索引)是pandas的重要功能,可以在Series、DataFrame对象上拥有2个以及2个以上的索引。
实质上,单级索引对应Index对象(如RangeIndex,Int64Index), 多级索引对应MultiIndex对象。
- index属性
- names:levels的名称,每个索引级别的名称。(compat接受名称)
- labels:每个级别的整数指定每个位置的标签
- levels:每个level的元组值,每个级别的唯一标签
df.index.names
FrozenList(['year', 'month'])
df.index.levels
FrozenList([[2012, 2013, 2014], [1, 4, 7, 10]])
Panel
class pandas.Panel(data=None, items=None, major_axis=None, minor_axis=None, copy=False, dtype=None)
存储3维数组的Panel结构
- items - axis 0,每个项目对应于内部包含的数据帧(DataFrame)。
- major_axis - axis 1,它是每个数据帧(DataFrame)的索引(行)。
- minor_axis - axis 2,它是每个数据帧(DataFrame)的列。
注:Pandas从版本0.20.0开始弃用Panel:推荐的用于表示3D数据的方法是DataFrame上的MultiIndex方法
三维结构,已经过期,不建议使用,应该用MultiIndex配合DataFrame来表示三维数据
思考:如果获取DataFrame中某个股票的不同时间数据?这样的结构是什么?
Series结构
一维结构,只有行索引,没有列索引
DataFrame的每一列就是一个Series
Series操作起来类似字典,Series常被当作长度不会改变的字典
属性:
- index,索引
- values,后面的值,是一个numpy.ndarray
什么是Series结构呢,我们直接看下面的图:
series结构只有行索引
创建series
通过已有数据创建
- 指定内容,默认索引
- 指定索引
- 通过字典数据创建
series获取索引和值
- index
- values
版权声明:
笔者博客文章主要用来作为学习笔记使用,内容大部分整理自互联网,如有侵权,请联系博主删除!