开发者学堂课程【Python 数据分析库 Pandas 快速入门:DataFrame 属性和方法】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/607/detail/8847
DataFrame 属性和方法
内容简介
一、具体内容
二、DataFrame 结构
三、DataFrame 的属性
一、具体内容
224.1.3DataFrame
23结构:既有行索引,又有列索引的二维数组
24属性:
25 shape
26 index
27 columns
28 values
29 T
30方法:
31head()
32 tail()
33
二、DataFrame 结构
DataFrame 对象既有行索引,又有列索引
l 行索引,表明不同行,横向索引,叫 index
l 列索引,表名不同列,纵向索引,叫 columns
(一)回忆我们在 numpy 当中创建的股票涨跌幅数据形式?
#创建一个符合正态分布的 10 个股票 5 天的涨跌幅数据
stock_change=np.random.normal(o,1,(10,5))
array([[-0.06544031,-1.30931491,-1.45451514, 0.57973008,1.48602405],
[-1.73216741,-0.83413717,0.45861517,-0.80391793,-0.46878575],
[0.21805567,0.19901371,0.71346830.5484263,0.38623412],
[-0.42207879,-0.33702398,0.42328531,-1.23879202,132843773]
,
[-1.72530711.0.07591832.-1.91708358,-0.16535818,1.07645091]
,
[-0.81576845,-0.28675278,1.20441981, 0.73365951,-0.06214496],
[-0.98820861,-1.01815231,-0.95417342,-0 81538991,0.50268175],
[-0.10034128,0.61196204,-0.06850331,0.74738433,0.143011 ],
[1.00026175,0.34241958,-2.2529711,0.93921064, 1.14080312],
[2.52064693
,
1.55384756
,
1.72252984,0.61270132
,
0.60888092]])
但是这样的数据形式很难看到存储的是什么样的数据,并且也很难获取相应的数据,比如需要获取某个指定股票的数据,就很难去获取!!
(二)问题:如何让数据更有意义的显示?
#使用 Pandas 中的数据结构
stock change = pd.DataFrame(stock_change)
给股票涨跌幅数据增加行列索引,显示效果更佳
l 构造行索引
#构造行索引序列
stock code = ['股票' + str(1) for 1 1n range(stock change. shape[01)1
#添加行索引
data = pd.DataF rame(stock_ change, index=stock code)
l 增加列索引
股票的日期是一个时间的序列,我们要实现从前往后的时间还要考虑每月的总天数等,不方便。使用 pd.date_ range0: 用于生成一组连续的时间序列(暂时了解)
date
_
range(start=None , end=None, periods=None, freq='B')
start:开始时间
end:结束时间
perlods:时间天数
freq:递进单位,默认1天,'B' 默认略过周末
#学生成一个时间的序列,略过周末非交易日
date = pd.date
_
range('2017-01-01',periods=stock
_
change.shape[1], freq='B')
# index 代表行索引 columns 代表列索引
Data
pd. DataFrame(stock_change用index=stock_code, columns=date)
三、DataFrame 的属性
常用属性:
l
shape
#data. shape
#结果
(10, 5)
l
index
DataFrame的行索引列表
data. index
Index(['股票0
’
,
’
股票1
’
,
’
股票2
’
,
’
股票3',
’
股票4
’
,
’
股票5',
’
股票7
’,’
股票
8’,’
股票
9’,
dtype= 'object')
l
columns
DataFrame 的列索引列表
data. columns
Datet imeIndex(['2017-01-02,2017-01-032017-01-042017-01-05',2017-01-06'],
dtype= ' datet ime64 (nsl,freq='B)
l
values
直接获取其中 array 的值
data. values