python之股票数据分析.
⼀、初识Pandas
Pandas 是基于 NumPy 的⼀个⾮常好⽤的库,它有两种⾃⼰独有的基本数据结构Series (⼀维)和
DataFrame(⼆维),它们让数据操作更简单了。虽然Pandas有着两种数据结构,但它依然是 Python 的⼀个库,所以,Python
中有的数据类型在这⾥依然适⽤,也同样还可以使⽤类⾃⼰定义数据类型。
在⾦融数据分析领域,Pandas更是起到了⾮常重要的作⽤,⽐如⽤于量化交易。Pandas
纳⼊了⼤量库和⼀些标准的数据模型,提供了⾼效地操作⼤型数据集所需的⼯具,对于亿级的数据处理也如鱼得⽔。
⼆、Pandas基本操作
1、Series的创建
Series的创建主要有三种⽅式:
1)通过⼀维数组创建Series
import numpy as npimport pandas as pd#创建⼀维数组a = np.arange(10)
print(a)
s = pd.Series(a)
print(s)
[/code]
输出如下:
 > 2)通过字典的⽅式创建Series
```code
import numpy as npimport pandas as pd#创建字典d = {'a':1,'b':2,'c':3,'d':4,'e':5}
print(d)
s = pd.Series(d)
print(s)
[/code]
输出如下:
> 3)通过DataFrame中的某⼀⾏或某⼀列创建Series
参考下⾯DataFrame第三种创建⽅式中的s = df3['one']。
### 2、DataFrame的创建
python 定义数组DataFrame的创建主要有三种⽅式:
> 1)通过⼆维数组创建DataFrame
```code
import numpy as npimport pandas as pd#创建⼆维数组a = np.array(np.arange(12)).reshape(3,4)
print(a)
df1 = pd.DataFrame(a)
print(df1)
[/code]
输出如下:
> 2)通过字典的⽅式创建DataFrame
以下以两种字典来创建数据框,⼀个是字典列表,⼀个是嵌套字典。
```code
import numpy as npimport pandas as pd
d1 = {'a':[1,2,3,4],'b':[5,6,7,8],'c':[9,10,11,12],'d':[14,14,15,16]}
print(d1)
df1 = pd.DataFrame(d1)
print(df1)
d2 = {'one':{'a':1,'b':2,'c':3,'d':4},'two':{'a':5,'b':6,'c':7,'d':8},'three':{'a':9,'b':10,'c':11,'d':12}}
print(d2)
df2 = pd.DataFrame(d2)
print(df2)
[/code]
输出如下:
> 3)通过DataFrame的⽅式创建DataFrame
我们取出2)中的df2来创建df3
```code
df2 = pd.DataFrame(d2)print(df2)
df3 = df2[['one','two']]print(df3)
s = df3['one']print(s)
[/code]
输出如下:
#### 三、处理股票数据
接下来,我们通过实例来学习Pandas在处理股票数据上的应⽤。
我们使⽤pandas_datareader来获取阿⾥巴巴的股票数据。
> 1)导⼊以下库:
```code
import pandas as pdimport pandas_datareader.data as web#绘图使⽤import matplotlib.pyplot as plt#获取时间使⽤import datetime
[/code]
> 2)设置股票名称和时间参数
```code
name = "BABA"start = datetime.datetime(2015,1,1)end = day()
[/code]
> 3)获取股票数据
```code
prices = web.DataReader(name, "google", start, end)
[/code]
> 4)查看prices的类型
```code
print(type(prices))
[/code]
打印如下:
```code
<class 'frame.DataFrame'>
[/code]
可以看到返回的数据类型就是DataFrame类型。
> 5)查看股票的摘要信息
```code
print(prices.describe()
[/code]
打印如下:
```code
Open High Low Close Volumecount 791.000000 791.000000 792.000000 792.000000 7.920000e+02mean 106.632099 107.793186 105.355164 106.614520 1.610571e+07std 38.191772 38.539981 37.71 25% 79.855000 80.945000 79.157500 79.935000 1.003487e+07
50% 91.000000 91.740000 89.925000 90.705000 1.350020e+07
75% 119.315000 120.400000 118.462500 120.205000 1.879724e+07max 204.830000 206.200000 202.800000 205.220000 9.704593e+07
[/code]
再来打印最新的三条信息
```code
print(prices.tail(3))
[/code]
```code
Open High Low Close VolumeDate 2018-02-21 189.37 193.17 188.46 188.82 22071585
2018-02-22 190.20 190.74 187.77 188.75 12282843
2018-02-23 190.18 193.40 189.95 193.29 16937275
[/code]
> 6)绘图
我们将阿⾥巴巴的股票数据按照开盘价绘图。
```code
plt.plot(prices.index, prices["Open"])plt.show()
[/code]

从图中我们可以看到阿⾥巴巴的股票⼀路攀升,细⼼点发现每年的11⽉都有⼀个⾼点。
#### 四、总结
Pandas是以NumPy和Matplotlib为基础封装的⾦融数据分析的库,对于量化交易⼗分有⽤,通过可视化的效果能帮我们⼀定程度分析股市的⾛向。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
python3中的标准数据类型
« 上一篇
numpy的常数
下一篇 »
热门文章
-
excel文字递增函数公式
2025-02-08 -
数字递增公式
2025-02-08 -
notepad 正则变量运算
2025-02-08 -
C++regex库常用函数及实例
2025-02-08 -
js正则表达式之前瞻后顾与非捕获分组
2025-02-08 -
indesign正则数字和英文之间的空格
2025-02-08 -
C#匹配中文字符串的4种正则表达式分享
2025-02-08 -
PHP正则表达式匹配中文字符
2025-02-08 -
匹配中文汉字的正则表达式介绍
2025-02-08 -
Python正则表达式如何进行字符串替换
2025-02-08 -
orcl中用正则表达式
2025-02-08 -
sql正则表达式excel
2025-02-08 -
dataframe正则表达式
2025-02-08 -
postgress sql正则
2025-02-08 -
el-upload accept 正则表达式
2025-02-08 -
半小时 正则表达式
2025-02-08 -
判断科学计数法的正则
2025-02-08 -
根据url判断静态资源的方法
2025-02-08 -
Java正则表达式-匹配正负浮点数
2025-02-08 -
替换模糊匹配正则-hive
2025-02-08
最新文章
-
一种基于正则表达式的DBC文件解析及报文分析方法[发明专利]
2025-02-08 -
能被5整除的十进制整数的正规表达式
2025-02-08 -
大于0小于等于1的正则表达式
2025-02-08 -
linux grep 26个字母
2025-02-08 -
java pattern 正则表达式
2025-02-08 -
掌握文本编辑器中的搜索和替换技巧
2025-02-08
发表评论