Как на примере в этого кода скомбинировать дату и время из разных столбцов?
for SESSION_REPORT_FILE in os.listdir(SESSION_REPORT_PATH):
start_date=datetime.strptime(SESSION_REPORT_FILE[14:len(SESSION_REPORT_FILE)-4], '%Y-%m-%d')
fixed_df = pd.read_csv(SESSION_REPORT_PATH + SESSION_REPORT_FILE, sep=';', encoding='utf-8', engine='c',
names=['v2m_guid', 'start_time', 'text_length', 'voice_length'], parse_dates=['start_time', 'voice_length'],
dtype={'text_length': np.int32}, header=0)
fixed_df["start_date"]=start_date
fixed_df['start_time']=datetime.combine(fixed_df["start_date"].date(), fixed_df['start_time'].time())
fixed_df['voice_length']=datetime.combine(fixed_df["start_date"].date(), fixed_df['voice_length'].time())-fixed_df["start_date"]
fixed_df['end_time']=fixed_df['start_time']+fixed_df['voice_length']
Падает на строке
datetime.combine(fixed_df["start_date"].date(), fixed_df['start_time'].time())
, что логично, так как я вызываю функции
datetime.combine
,
date
и
time
, относящиеся к элементам pd.Series к самому pd.Series. Но это казалось логичным, с учетом других кейсов Pandas, где это работает. Подскажите как корректно сделать задуманное, используя методы pd.Series? Использовать цикл совсем не хочетя, иначе теряется магия Pandas
UPDATE
Сделал так
pd.Timestamp.combine(fixed_df["start_date"].dt.date, fixed_df['start_time'].dt.time)
datetime.combine(fixed_df["start_date"].dt.date, fixed_df['start_time'].dt.time)
в обоих случаях получил
TypeError: combine() argument 1 must be datetime.date, not Series
, что наверное тоже логично. Какой аналог функции
datetime.combine
?