[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)]
Mam listę nazwanych krotek i chcę ją zindeksować na podstawie podanego zakresu dat. Na przykład, biorąc pod uwagę 2019-11-10 (data_początkowa) i 08.11.2019 (data końcowa), chcę zwrócić listę nazwanych krotek, która zawiera informacje tylko z tego zakresu dat. W jaki sposób mogę to zrobić? Dziękuję Ci
1 odpowiedź
Niesprawdzone, ale coś takiego:
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
Zwróć uwagę, że zacząłeś jako 10, a kończyłeś jako 8, co, jak założyłem, było literówką i przełączone. możesz także chcieć> = i <= do porównań.
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.