我有一个名为last_price的变量,它输出:
SPY
Date
2015-02-02 00:00:00+00:00 201.92
我想使用以下代码将last_price扩展为1000,1的形状:
lp_list=[]
lp_len=np.ones(1000)
for o in lp_len:
p=last_price
lp_list.append(p)
但打印lp_list输出:
[ SPY
Date
2015-02-02 00:00:00+00:00 201.92, SPY
Date
2015-02-02 00:00:00+00:00 201.92, SPY
Date
2015-02-02 00:00:00+00:00 201.92
etc...
无论我的最终用途是什么,如何将lp_list转换为价格字符串的平面列表(201.92)?
当我尝试使用列表理解进行拼接时,我得到以下内容:
>>flat_lp = [y for x in lp_list for y in x]
>>print flat_lp
...['SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY', 'SPY',
etc...
有没有办法可以创建一个只有last_price变量的平面列表,输出为201.92,重复1000次,如下所示:
>>print lp_list
...[201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92,
etc...
需要考虑两件事:
1)last_price是一种数据帧类型:
<class 'pandas.core.frame.DataFrame'>
2)lp_list中的元素需要是float类型整数
由于
答案 0 :(得分:0)
如果您只想重复价格,可以使用itertool.repeat
,因此您不需要循环,您可以拆分字符串,然后使用[-1]
索引选择最后一个元素:
>>> s=""" SPY
... Date
... 2015-02-02 00:00:00+00:00 201.92"""
>>> s.split()
['SPY', 'Date', '2015-02-02', '00:00:00+00:00', '201.92']
>>> from itertools import repeat
>>> repeat(s.split()[-1],10)
repeat('201.92', 10)
>>> list(repeat(float(s.split()[-1]),10))
[201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92, 201.92]