По возможности избегайте строковых операций
Вы теряете значительную часть функциональности, работая только со строками.Хотя это может быть разовая операция, вы обнаружите, что многократные манипуляции со строками быстро станут дорогостоящими с точки зрения времени и эффективности памяти.
Используйте pd.to_datetime
вместо
Вы можете добавить дополнительныеряд к вашему датафрейму с datetime
объектами.Ниже приведен пример, который, кроме того, создает серию object
dtype в желаемом формате.
# split by '-' into 2 series
dfs = df.pop('bucket').str.split('-', expand=True)
# convert to datetime
dfs = dfs.apply(pd.to_datetime, axis=1)
# add 1s to first series
dfs[0] = dfs[0] + pd.Timedelta(seconds=1)
# create object series from 2 times
form = '%H:%M:%S'
dfs[2] = dfs[0].dt.strftime(form) + '-' + dfs[1].dt.strftime(form)
# join to original dataframe
res = df.join(dfs)
print(res)
code 0 1 2
0 0 2018-10-02 08:30:01 2018-10-02 09:00:00 08:30:01-09:00:00
1 1 2018-10-02 10:00:01 2018-10-02 11:00:00 10:00:01-11:00:00
2 2 2018-10-02 12:00:01 2018-10-02 13:00:00 12:00:01-13:00:00