本文使用的是以CSV文件形式在本地存储的金融数据集形式为本地存储的CSV文件。从技术上讲,CSV文件是包含数据行结构的文本文件,其特征是以逗号分隔单个值。在导入数据之前,导入一些软件包并进行定制:
In [1]: import numpy as np
import pandas as pd
from pylab import mpl, plt
plt.style.use('seaborn')
mpl.rcParams['font.family'] = 'serif'
%matplotlib inline
数据导入
pandas提供不同的函数和DataFrame方法,以导入不同存储格式(CSV、SQL、Excel等)的数据,并将数据导出为不同格式(详见第9章)。下面的代码通过pd.read_csv()函数导入CSV[1]文件中的时间序列数据:
In [2]: filename = '../../source/tr_eikon_eod_data.csv' ❶
In [3]: f = open(filename, 'r') ❷
f.readlines()[:5] ❷
Out[3]: ['Date,AAPL.O,MSFT.O,INTC.O,AMZN.O,GS.N,SPY,.SPX,.VIX,EUR=,XAU=,GDX,
,GLD\n',
'2010-01-01,,,,,,,,,1.4323,1096.35,,\n',
'2010-01-04,30.57282657,30.95,20.88,133.9,173.08,113.33,1132.99,20.04,
,1.4411,1120.0,47.71,109.8\n',
'2010-01-05,30.625683660000004,30.96,20.87,134.69,176.14,113.63,1136.52,
,19.35,1.4368,1118.65,48.17,109.7\n',
'2010-01-06,30.138541290000003,30.77,20.8,132.25,174.26,113.71,1137.14,
,19.16,1.4412,1138.5,49.34,111.51\n']
In [4]: data = pd.read_csv(filename, ❸
index_col=0, ❹
parse_dates=True) ❺
In [5]: data.info() ❻
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 2216 entries, 2010-01-01 to 2018-06-29
Data columns (total 12 columns):
AAPL.O 2138 non-null float64
MSFT.O 2138 non-null float64
INTC.O 2138 non-null float64
AMZN.O 2138 non-null float64
GS.N 2138 non-null float64
SPY 2138 non-null float64
.SPX 2138 non-null float64
.VIX 2138 non-null float64
EUR= 2216 non-null float64
XAU= 2211 non-null float64
GDX 2138 non-null float64
GLD 2138 non-null float64
dtypes: float64(12)
memory usage: 225.1 KB
❶ 指定路径和文件名。
❷ 显示原始数据(Linux/Mac)的前5行。
❸ 传递给pd.read_scv()函数的文件名。
❹ 指定第一列作为索引处理。
❺ 指定索引值为datetime类型。
❻ 结果为DataFrame对象。
在这一阶段,金融分析师可能首先观察数据,对其进行检查或者可视化:

In [6]: data.head() ❶
Out[6]:
AAPL.O MSFT.O INTC.O AMZN.O GS.N SPY .SPX .VIX \
Date
2010-01-01 NaN NaN NaN NaN NaN NaN NaN NaN
2010-01-04 30.572827 30.950 20.88 133.90 173.08 113.33 1132.99 20.04
2010-01-05 30.625684 30.960 20.87 134.69 176.14 113.63 1136.52 19.35
2010-01-06 30.138541 30.770 20.80 132.25 174.26 113.71 1137.14 19.16
2010-01-07 30.082827 30.452 20.60 130.00 177.67 114.19 1141.69 19.06
EUR= XAU= GDX GLD
Date
2010-01-01 1.4323 1096.35 NaN NaN
2010-01-04 1.4411 1120.00 47.71 109.80
2010-01-05 1.4368 1118.65 48.17 109.70
2010-01-06 1.4412 1138.50 49.34 111.51
2010-01-07 1.4318 1131.90 49.10 110.82
In [7]: data.tail() ❷
Out[7]:
AAPL.O MSFT.O INTC.O AMZN.O GS.N SPY .SPX.VIX \
Date
2018-06-25 182.17 98.39 50.71 1663.15 221.54 271.00 2717.07 17.33
2018-06-26 184.43 99.08 49.67 1691.09 221.58 271.60 2723.06 15.92
2018-06-27 184.16 97.54 48.76 1660.51 220.18 269.35 2699.63 17.91
2018-06-

本文介绍如何使用pandas库处理金融时间序列数据,包括数据导入、汇总统计、时间变化分析和重新采样。通过示例展示了数据分析过程,如计算描述性统计、变化率和对数回报率,强调了重新采样在金融分析中的重要性,并提醒避免预见偏差。
最低0.47元/天 解锁文章
599

被折叠的 条评论
为什么被折叠?



