Python 时间戳数据的循环索引
Python loop indexing on time stamped data
我是 Python 的新手,有一个问题。我正在处理来自雅虎金融的时间戳数据。我在没有执行循环的情况下创建的任何变量,例如 % chg.
,returns 原始时间戳仍然完好无损的结果:
close_return = close_price.pct_change()
output:
2014-12-18 -0.028116
...
Name: close, Length: 2199
但是一旦我将这个结果放入 for 循环中,时间戳索引就会被默认索引 (0,1,2,n,...) 替换。
my_lambda=.94
weight=0
lambda_calc=[]
for i in log_sq_series[::-1]:
if i == log_sq_series[-1]:
weight=1-my_lambda
lambda_calc.append(weight)
else:
weight=weight*my_lambda
lambda_calc.append(weight)
mylambda=pd.Series(lambda_calc, name='lambda')
mylambda
output:
0 0.060000
1 0.056400
etc...
Name: lambda, Length: 2199, dtype: float64
当我对具有两个不同索引的两个变量进行算术运算时,这对我来说是个问题。见下文:
somevariable=mylambda*close_return
somevariable
output:
2006-04-10 NaN
2006-04-11 NaN
...
2184 NaN
2185 NaN
Length: 4398, dtype: float64
如您所见,#
行加倍(2199
用于时间戳,2199
用于默认索引)因为 Python 正在处理两个不同的索引(我认为?)。有没有人有办法解决吗?同样,我是 Python 的新手,所以通俗易懂的术语会非常有用 ;)
如果您的 close_return 是一个 numpy 数组,您可以尝试这样的操作:
mylambda=pd.Series(lambda_calc, name='lambda', index = close_return[:,[1]])
这应该创建具有自定义索引的系列(对应于 close_return
的第一列。
我是 Python 的新手,有一个问题。我正在处理来自雅虎金融的时间戳数据。我在没有执行循环的情况下创建的任何变量,例如 % chg.
,returns 原始时间戳仍然完好无损的结果:
close_return = close_price.pct_change()
output:
2014-12-18 -0.028116
...
Name: close, Length: 2199
但是一旦我将这个结果放入 for 循环中,时间戳索引就会被默认索引 (0,1,2,n,...) 替换。
my_lambda=.94
weight=0
lambda_calc=[]
for i in log_sq_series[::-1]:
if i == log_sq_series[-1]:
weight=1-my_lambda
lambda_calc.append(weight)
else:
weight=weight*my_lambda
lambda_calc.append(weight)
mylambda=pd.Series(lambda_calc, name='lambda')
mylambda
output:
0 0.060000
1 0.056400
etc...
Name: lambda, Length: 2199, dtype: float64
当我对具有两个不同索引的两个变量进行算术运算时,这对我来说是个问题。见下文:
somevariable=mylambda*close_return
somevariable
output:
2006-04-10 NaN
2006-04-11 NaN
...
2184 NaN
2185 NaN
Length: 4398, dtype: float64
如您所见,#
行加倍(2199
用于时间戳,2199
用于默认索引)因为 Python 正在处理两个不同的索引(我认为?)。有没有人有办法解决吗?同样,我是 Python 的新手,所以通俗易懂的术语会非常有用 ;)
如果您的 close_return 是一个 numpy 数组,您可以尝试这样的操作:
mylambda=pd.Series(lambda_calc, name='lambda', index = close_return[:,[1]])
这应该创建具有自定义索引的系列(对应于 close_return
的第一列。