【发布时间】:2012-11-12 23:28:05
【问题描述】:
我有一个用这个填充的熊猫数据框:
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
我可能遗漏了一些简单的东西。为了从这种计算中获得有用的价值,我需要做什么?提前感谢您的帮助。
【问题讨论】:
-
我认为 OP 的主要关注点是部门,而不是转变。到目前为止提供的答案都只针对后者。
-
我担心的是除法,但我得到这个结果的原因是熊猫对齐。 Shift 解决了这个问题。
-
好的,很高兴你成功了!