Почти так же, как и вы, но когда вы разделяете с помощью раскрытия, он возвращает 2 столбца, поэтому вам также нужно иметь 2 столбца в присваивании (например, data[['StartDate', 'StartTime']] = ...
):
data = pd.DataFrame({'Start': ['2019-03-04T00:00:00'],
'End': ['2019-03-04T10:00:00']})
data[['Start', 'StartTime']] = data["Start"].str.split("T", n=1, expand = True)
data[['End', 'EndTime']] = data["End"].str.split("T", n=1, expand = True)
print(data)
Вывод:
Start End StartTime EndTime
0 2019-03-04 2019-03-04 00:00:00 10:00:00
Примечание: если вы просто хотите добавить время начала и окончания к имени вашей задачи, вам даже не нужно разделять даты.Вместо этого вы можете преобразовать их с помощью pd.to_datetime
, а затем отформатировать с помощью strftime
как '%H:%M'
(для hours:minutes
):
data = pd.DataFrame({'Task': 'task 1',
'Start': ['2019-03-04T00:00:00'],
'End': ['2019-03-04T10:00:00']})
data['Task'] += ' ' + \
pd.to_datetime(data['Start']).dt.strftime('%H:%M').astype(str) + ' ' + \
pd.to_datetime(data['End']).dt.strftime('%H:%M').astype(str)
print(data)
Вывод:
Task Start End
0 task 1 00:00 10:00 2019-03-04T00:00:00 2019-03-04T10:00:00