Добавить день недели ко времени в Python strptime

У меня есть два столбца в CSV-файле, один из которых имеет время в формате чч: мм: сс, а другой — день недели, где 1 равен понедельнику, а 7 — воскресенью. Нет даты, связанной с данными.

Я хочу объединить данные в одно поле, в котором время будет связано с днем ​​недели.

У меня есть время в порядке с strptime:

time.strptime(fl['journey']['BeginTime'][row], "%H:%M:%S")

Что дает формат:

time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)

Цифра, соответствующая дню недели, хранится в следующей переменной:

fl['journey']['Day'][row]

Любая помощь приветствуется.


person eamon1234    schedule 24.05.2012    source источник


Ответы (2)


Это должно вас заинтересовать:

from datetime import datetime

datetime.strptime("6 13:45:12", "%w %H:%M:%S").timetuple()
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=13, tm_min=45, tm_sec=12, tm_wday=0, tm_yday=1, tm_isdst=-1)

Помните, что дни недели в Python начинаются с 0 = воскресенье и продолжаются до 6.

person Burhan Khalid    schedule 24.05.2012

person    schedule
comment
%A зависит от текущей локали, и если это уже число, почему бы не использовать %w. - person mata; 24.05.2012
comment
@mata, потому что я, очевидно, не видел %w. :) Спасибо. - person mayhewr; 24.05.2012
comment
@BurhanKhalid почти уверен, что я получил правку прямо перед тем, как ты опубликовал это, но хороший улов - person mayhewr; 24.05.2012
comment
Отлично, спасибо mayhewr, красивое элегантное решение. Для тех, кто пытается это сделать, просто убедитесь, что столбец int, если это еще не сделано, т.е. (int (fl ['journey'] ['Day'] [row]) - 1) - person eamon1234; 24.05.2012