如何在给定日期范围内索引包含股票信息的命名元列表?

问题描述 投票:0回答:1
[Stock(date='2019-11-20', open='150.3100', high='150.8400', low='148.9600', close='148.9700', volume='11291822', indicator=0, signal='', change=0), Stock(date='2019-11-19', open='150.8800', high='151.3300', low='150.2000', close='150.3900', volume='23935700', indicator=0, signal='', change=0), Stock(date='2019-11-18', open='150.0700', high='150.5500', low='148.9800', close='150.3400', volume='21534000', indicator=0, signal='', change=0), Stock(date='2019-11-15', open='148.9300', high='149.9900', low='148.2700', close='149.9700', volume='23485700', indicator=0, signal='', change=0), Stock(date='2019-11-14', open='147.0200', high='148.4100', low='147.0000', close='148.0600', volume='19729800', indicator=0, signal='', change=0), Stock(date='2019-11-13', open='146.7400', high='147.4600', low='146.2800', close='147.3100', volume='16919200', indicator=0, signal='', change=0), Stock(date='2019-11-12', open='146.2800', high='147.5700', low='146.0600', close='147.0700', volume='18641600', indicator=0, signal='', change=0), Stock(date='2019-11-11', open='145.3400', high='146.4200', low='144.7300', close='146.1100', volume='14362600', indicator=0, signal='', change=0), Stock(date='2019-11-08', open='143.9800', high='145.9900', low='143.7600', close='145.9600', volume='16732700', indicator=0, signal='', change=0), Stock(date='2019-11-07', open='143.8400', high='144.8800', low='143.7700', close='144.2600', volume='17786700', indicator=0, signal='', change=0)]

我有一个namedtuple列表,我想根据给定的日期范围对其进行索引。例如,给定2019-11-10(开始日期)和2019-11-08(结束日期),我想返回一个namedtuple列表,其中仅包含该日期范围内的信息。我怎么做?谢谢

python list date namedtuple
1个回答
0
投票

未经测试,但类似:

from datetime import datetime

format = '%Y-%m-%d'
start = datetime.strptime('2019-11-08', format)
end = datetime.strptime('2019-11-10', format)

ret = []
for tup in your_list_of_tuples:
  date = datetime.strptime(tup['date'], format)
  if date > start and date < end:
    ret += date

请注意,您开始时是第十位,结束时是第八位,我以为是错字并切换了。

© www.soinside.com 2019 - 2024. All rights reserved.