Как сделать новый столбец, присоединившись к существующему столбцу в пандах
Я знаю, что есть много подобных вопросов, но я не могу найти ответы на эти вопросы. Это простой вопрос, но я все еще застрял в этой маленькой проблеме. У меня есть данные с большим количеством столбцов. Я хочу создать новый столбец, используя два из существующих столбцов. Что-то вроде этого:
Index Date Time
0 26-10-2017 06:00:00
1 26-10-2017 06:15:00
2 26-10-2017 06:30:00
Теперь мне нужен новый столбец, который должен выглядеть следующим образом:
Index Date Time Datetime
0 26-10-2017 06:00:00 26-10-2017 06:00:00
1 26-10-2017 06:15:00 26-10-2017 06:15:00
2 26-10-2017 06:30:00 26-10-2017 06:30:00
Я не могу сделать это прямо сейчас. В настоящее время я получаю кортеж с двумя строковыми значениями, но я не хочу этого:
Index Date Time Datetime
0 26-10-2017 06:00:00 ('26-10-2017', '06:00:00')
1 26-10-2017 06:15:00 ('26-10-2017', '06:15:00')
2 26-10-2017 06:30:00 ('26-10-2017', '06:30:00')
Я использую следующий код:
df5['Datetime'] = list(zip(df5.Date, df5.Time))
Могу ли я в любом случае получить значение так, как я хочу, а не в кортежах?
2 ответа
Предполагая, что столбцы являются строками, сложите их и используйте pd.to_datetime
df.assign(DateTime=pd.to_datetime(df.Date + ' ' + df.Time))
Index Date Time DateTime
0 0 26-10-2017 06:00:00 2017-10-26 06:00:00
1 1 26-10-2017 06:15:00 2017-10-26 06:15:00
2 2 26-10-2017 06:30:00 2017-10-26 06:30:00
Тебе нужно sum
преобразованный столбец Date
to_datetime
и колонка Time
to_timedelta
:
df.Date = pd.to_datetime(df.Date)
df.Time = pd.to_timedelta(df.Time)
df['Datetime'] = df.Date + df.Time
print (df)
Date Time Datetime
Index
0 2017-10-26 06:00:00 2017-10-26 06:00:00
1 2017-10-26 06:15:00 2017-10-26 06:15:00
2 2017-10-26 06:30:00 2017-10-26 06:30:00
print (df.dtypes)
Date datetime64[ns]
Time timedelta64[ns]
Datetime datetime64[ns]
dtype: object