Дата и час слияния в Панд

#python #python-3.x #pandas #datetime

Вопрос:

У меня есть два столбца в фрейме данных Pandas, один из которых содержит дату в виде строки, а другой — час дня в виде int.

Я хочу преобразовать это в метку даты и времени.

Мне это удалось, но я чувствую, что это происходит медленно.

Данные являются:

 df = pd.DataFrame({'Date': {0: '01/12/2017',  1: '01/12/2017',  2: '01/12/2017',  3: '01/12/2017',  4: '01/12/2017'},  'Hour': {0: 0, 1: 1, 2: 2, 3: 3, 4: 4},  'Rented Bike Count': {0: 254, 1: 204, 2: 173, 3: 107, 4: 78}})  

где типы Date данных есть object и Hour есть int64

и в настоящее время я объединяю дату и час, используя:

 # Generate the datetime column df['datetime'] = pd.to_datetime(df.apply(lambda x: f"{x['Date']} {x['Hour']}:00:00", axis=1))  # Remove the old datetime columns df = df.drop('Date', axis=1).drop('Hour', axis=1)  

Есть ли более быстрый способ сделать это?

Ответ №1:

Я бы сделал:

 # is your data day-first or month-first? df['datetime'] = pd.to_datetime(df['Date'], dayfirst=True)   pd.to_timedelta(df['Hour'], unit='H')  df = df.drop(['Date','Hour'], axis=1)  

Комментарии:

1. Это то, что я искал. Изо всех сил пытался найти pd.to_timedelta() работу. Кроме того, сегодня первый день.