【发布时间】:2016-04-12 20:21:57
【问题描述】:
因此,我想计算一些时间序列数据以计算每日回报/增量,其中每日增量 = value_at_time(T)/ value_at_time(T-1)
import pandas as pd
df=pd.DataFrame([1,2,3,7]) #Sample data frame
df[1:]
out:
0
1 2
2 3
3 7
df[:-1]
out:
0
0 1
1 2
2 3
######### Method 1
df[1:]/df[:-1]
out:
0
0 NaN
1 1
2 1
3 NaN
######### Method 2
df[1:]/df[:-1].values
out:
0
1 2.000000
2 1.500000
3 2.333333
######### Method 3
df[1:].values/df[:-1]
out:
0
0 2
1 1
2 2
我的问题是
- 如果 df[:-1] 和 df[1:] 只有三个值( dataframe) 那么为什么 Method_1 不起作用?
- 为什么几乎相似的方法 2 和 3 会给出不同的结果?
- 为什么在 Method_2 中使用 .values 会使其工作
【问题讨论】: