金融和经济数据应用

你如何利用本章中的工具去解决金融领域中的一些特殊问题。跟其他领域和分析领域一样,在数据规整化方面所花费的警力常常会比解决核心建模和研究问题所花费的要多得多。

1.数据规整化方面的话题

1.1 时间序列以及截面对齐
在处理金融数据时,最费神的一个问题就是所谓的”数据对齐”(data alignment)问题。手工处理数据对齐问题是一件令人非常郁闷的工作,而验证数据是否对齐则还要更郁闷些。不仅如此,合并未对齐的数据还很有可能带来各种bug。
pandas可以在算术运算中自动对齐数据。在实际工作中,这不仅能为你带来极大的自由度,而且还能提高你的工作效率。

1.2 频率不同的时间序列的运算
经济学时间序列常常有着按年、季、月、日计算的或其他更特殊的频率。有些完全就是不规则的,比如说,盈利预测调整随时都可能会发生。频率转换和重对齐的两大主要工具是resample和reindex方法。resample用于将数据转换到固定频率,而reindex则用于使数据符合一个新索引。

1.2.1. 我们可以用ts1 = Series(freq = ‘W-WED’),从一个星期的采样频率转换为一个工作日的采样频率ts1.resample(‘B’),这样则那些没有数据的日子就会出现一个”空洞”,只需要将fill_method设置为’ffill’即可用前面的值填充这些空白。

1.2.2 但是对于更一般化的不规整时间序列可能就不太合适了。如果要将ts1中”最当前”的值(即前向填充)加到ts2上。一个办法是将两者重采样为规整频率后再相加,但是如果想维持ts2中的日期索引的话,则reindex会是一种更好的解决方案。ts1.reindex(ts2.index,method=’ffill’)

1.3 时间和最当前数据选取
1.3.1 先生成一个交易日内的日期范围和时间序列。利用pthon的datatime.time对象进行索引即可抽取这些时间点上的值:ts[time(10,0)],实际上,该操作用到了实例方法at_time:ts.at_time(time(10,0))。还有一个between_time方法,它用于选取两个Time对象之间的值:ts.between_time(time(10,0),time(10,1))

1.3.2 正如之前提到的那样,可能刚好就没有任何数据落在某个具体的时间上(比如上午10点)。这时,你可能会希望得到上午10点之前最后出现的那个值。如果将一组Timestamp传入asof方法,就能得到这些时间点处(或其之前最近)的有效值(非NA)。例如,我们构造一个日期范围(每天上午10点),然后将其传入asof:selection = pd.date_range(‘2012-06-01 10:00’, periods=4, freq=’B’) ; irr_ts.asof(selection)

1.4 拼接多个数据源
在金融或经济领域中,还有另外几个经常出现的情况:
1. 在一个特定的时间点上,从一个数据源切换到另一个数据源
2. 用另一个时间序列对当前时间序列中的缺失值”打补丁”
3. 将数据中的符号(国家、资产代码等)替换为实际数据

1.对于第一种情况,在特定时刻从一个时间序列切换到另一个,其实就是用pandas.concat将两个TimeSeries或DataFrame对象合并到一起:spliced = pd.concat([data1.ix[:’2012-06-14’], data2.ix[‘2012-06-15’:]])

2.假设data1缺失了data2中存在的某个时间序列,combine_first可以引入合并点之前的数据,弥补缺失值:spliced_filled = spliced.combine_first(data2); DataFrame也有一个类似的方法update,它可以实现就地更新。如果只想填充空洞,则必须传入overwrite = False才行:spliced.update(data2, overwrite = False)

  1. 上面所讲的这些技术都可以实现将数据中的符号替换为实际数据,但有时利用DataFrame的索引机制直接对列进行设置会更简单一些: cp_spliced[[‘a’,’c’]] = data1[[‘a’,’c’]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值