import pandas.io.data as web
test = web.get_data_yahoo('QQQ')
iPython中的数据框如下所示:
In [13]: test
Out[13]:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 729 entries, 2010-01-04 00:00:00 to 2012-11-23 00:00:00
Data columns:
Open 729 non-null values
High 729 non-null values
Low 729 non-null values
Close 729 non-null values
Volume 729 non-null values
Adj Close 729 non-null values
dtypes: float64(5), int64(1)
当我将一列除以另一列时,我得到一个具有令人满意的小数位数的float64结果.我甚至可以将一列除以另一列偏移一列,例如test.Open [1:] / test.Close [:],并获得令人满意的小数位数.然而,当我将列除以偏移量时,我只得到1:
In [83]: test.Open[1:] / test.Close[:]
Out[83]:
Date
2010-01-04 NaN
2010-01-05 0.999354
2010-01-06 1.005635
2010-01-07 1.000866
2010-01-08 0.989689
2010-01-11 1.005393
...
In [84]: test.Open[1:] / test.Open[:]
Out[84]:
Date
2010-01-04 NaN
2010-01-05 1
2010-01-06 1
2010-01-07 1
2010-01-08 1
2010-01-11 1
我可能错过了一些简单的东西.为了从这种计算中获得有用的价值,我需要做些什么?在此先感谢您的帮助.
解决方法:
如果您希望在列和滞后值之间进行操作,则应该执行类似test.Open / test.Open.shift()的操作.
shift重新排列数据并采用可选的周期数.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。