私はこれで満たされたパンダのデータフレームを持っています:
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
私はおそらく単純なものを見逃しています。この種の計算から有用な値を得るには、どうすればよいでしょうか? よろしくお願いします。