Используйте dt.floor
с "30 с":
pd.to_datetime(df['myTime']).dt.floor('30s')
0 2019-06-03 11:47:30
1 2019-06-03 11:47:00
Name: myTime, dtype: datetime64[ns]
Для получения дополнительной информации о частотах даты / времени, которые вы можете использовать здесь, проверьте Смещение псевдонимов .
Если вы хотите записать это как многократно используемую функцию, измените код так, чтобы он принимал два аргумента: qualifier
и freq
, обозначающие масштаб и частоту соответственно.
def adjust_time(ser, qualifier, freq=1):
return ser.dt.floor(f'{freq}{qualifier}')
Пробный прогон,
adjust_time(pd.to_datetime(df['myTime']), qualifier='s', freq=30)
0 2019-06-03 11:47:30
1 2019-06-03 11:47:00
Name: myTime, dtype: datetime64[ns]
Хорошо работает и для других частот,
adjust_time(pd.to_datetime(df['myTime']), qualifier='D')
0 2019-06-03
1 2019-06-03
Name: myTime, dtype: datetime64[ns]