在给定日期范围的情况下,如何为包含股票信息的命名偶列表编制索引?

2024-04-25 02:03:10 发布

您现在位置:Python中文网/ 问答频道 /正文

[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)]

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


Tags: 信息列表closedatesignalstockopenchange
1条回答
网友
1楼 · 发布于 2024-04-25 02:03:10

未经测试,但类似于:

from datetime import datetime

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

# concise version
output = filter(lambda tup: start < datetime.strptime(tup['date'], format) < end, your_list_of_tuples)

# verbose version
output = []
for tup in your_list_of_tuples:
  date = datetime.strptime(tup['date'], format)
  if start < date < end:
    output += date

请注意,您从第10个开始,到第8个结束,我假设这是一个输入错误,然后切换。您可能还需要>;=和<;=用于比较

相关问题 更多 >