Mam tablicę obiektów datetime, i chciałbym dowiedzieć się, jakie element w tablicy znajduje się najbliżej danego dnia (np datetime.datetime(2014,12,16)
)Znajdź najbliższy termin na dany dzień
This post pokazuje jak znajdź najbliższą datę , która nie jest wcześniejsza niż podana data. Jak mogę zmienić ten kod, aby mógł zwracać daty sprzed określonej daty?
Na przykład, jeśli tablica mieści elementy datetime.datetime(2014,12,10)
i datetime.datetime(2014,12,28)
, poprzedni element powinien zostać zwrócony, ponieważ jest najbliższy datetime.datetime(2014,12,16)
w wartości bezwzględnej.
Może możesz spróbować posortować daty, a następnie sprawdzić indeks przed i po dacie, na którą patrzysz i zobaczyć, który z nich jest bliżej? – Zarwan
W tej chwili używam 'np.argwhere', aby znaleźć wszystkie elementy przed i po podanej dacie i wziąć odpowiednio pierwsze z pierwszych elementów. Problem polega na tym, że czasami nie ma dat po 16 grudnia 2014 r. W tablicy, co jest problemem w moim skrypcie. O wiele łatwiej byłoby znaleźć najbliższą datę. – user3600497
Możesz rozważyć użycie funkcji [truncate] (http://stackoverflow.com/questions/9877391/how-to-get-the-closest-single-row-afcera-a-specific-datetime-index-using-python-p). –