Pandas1----Pandas介绍和DataFrame
原创
©著作权归作者所有:来自51CTO博客作者wx5cee84fb43fbb的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
- 一、pandas介绍
- 二、DataFrame
- 1.DataFrame属性
- 2.DatatFrame索引的设置
- 3.以某列值设置为新的索引
一、pandas介绍
Numpy已经能够帮助我们处理数据,能够结合matplotlib解决部分数据展示等问题,那么pandas学习的目的在什么地方呢?
- 便捷的数据处理能力
- 读取文件方便
- 封装了Matplotlib、Numpy的画图和计算
例如: 我们可以将这样一个数组以更清晰的方式表达出来。(如下图)
代码如下:
- 生成数据
- 用Dataframe包装一下
- 改一下列索引和行索引
- 注意:时间索引
date_range(start=None,end=None, periods=None, freq='B')
start:开始时间
end:结束时间
periods:时间天数
freq:递进单位,默认1天,'B'默认略过周末
二、DataFrame
DataFrame对象既有行索引,又有列索引
- 行索引,表明不同行,横向索引,叫index,0轴,axis=0
- 列索引,表名不同列,纵向索引,叫columns,1轴,axis=1
1.DataFrame属性
- data.shape
- data.index 行索引
- data.columns 列索引
- data.values 直接获取其中array值
- data.T 转置
- data.head(5) 显示前5行内容
- data.tail(5) 显示后5行内容
2.DatatFrame索引的设置
- 修改索引行列
stock_code = ["股票_" + str(i) for i in range(stock_day_rise.shape[0])]
# 必须整体全部修改
data.index = stock_code
结果:
2. 重设索引
- 设置新的下标索引
- drop:默认为False,不删除原来索引,如果为True,删除原来的索引值
# 重置索引,drop=False
data.reset_index()
index 2017-01-02 00:00:00 2017-01-03 00:00:00 2017-01-04 00:00:00 2017-01-05 00:00:00 2017-01-06 00:00:00
0 股票_0 -0.065440 -1.309315 -1.454515 0.579730 1.486024
1 股票_1 -1.732167 -0.834137 0.458615 -0.803918 -0.468786
2 股票_2 0.218056 0.199014 0.713468 0.548426 0.386234
3 股票_3 -0.422079 -0.337024 0.423285 -1.230792 1.328438
4 股票_4 -1.725307 0.075918 -1.917084 -0.165358 1.076451
5 股票_5 -0.815768 -0.286753 1.204420 0.733660 -0.062145
6 股票_6 -0.988209 -1.018152 -0.954173 -0.815390 0.502682
7 股票_7 -0.100341 0.611962 -0.068503 0.747384 0.143011
8 股票_8 1.000262 0.342420 -2.252971 0.939211 1.140803
9 股票_9 2.520647 1.553848 1.722530 0.612701 0.608881
# 重置索引,drop=True
data.reset_index(drop=True)
2017-01-02 00:00:00 2017-01-03 00:00:00 2017-01-04 00:00:00 2017-01-05 00:00:00 2017-01-06 00:00:00
0 -0.065440 -1.309315 -1.454515 0.579730 1.486024
1 -1.732167 -0.834137 0.458615 -0.803918 -0.468786
2 0.218056 0.199014 0.713468 0.548426 0.386234
3 -0.422079 -0.337024 0.423285 -1.230792 1.328438
4 -1.725307 0.075918 -1.917084 -0.165358 1.076451
5 -0.815768 -0.286753 1.204420 0.733660 -0.062145
6 -0.988209 -1.018152 -0.954173 -0.815390 0.502682
7 -0.100341 0.611962 -0.068503 0.747384 0.143011
8 1.000262 0.342420 -2.252971 0.939211 1.140803
9 2.520647 1.553848 1.722530 0.612701 0.608881
3.以某列值设置为新的索引
- set_index(keys, drop=True)
- keys : 列索引名成或者列索引名称的列表
- drop : boolean, default True.当做新的索引,删除原来的列
设置新索引案例
- 创建
df = pd.DataFrame({'month': [1, 4, 7, 10],
'year': [2012, 2014, 2013, 2014],
'sale':[55, 40, 84, 31]})
month sale year
0 1 55 2012
1 4 40 2014
2 7 84 2013
3 10 31 2014
- 以月份设置新的索引
df.set_index('month')
sale year
month
1 55 2012
4 40 2014
7 84 2013
10 31 2014
- 设置多个索引,以年和月份
df.set_index(['year', 'month'])
sale
year month
2012 1 55
2014 4 40
2013 7 84
2014 10 31