Вычислить столбцы даты в Datframe - PullRequest
0 голосов
/ 28 января 2020

enter image description here

Я пытаюсь вычислить эти столбцы. Мне нужны два новых столбца,

  • один с именем «Время начала» = Дата + Время
  • один с именем «Время окончания» = Дата + Время + Времяделта

Они нужны мне для диаграммы Ганта в python, проблема в том, что время может появляться несколько раз. Любая идея, как решить эту проблему?

Я вычеркнул их из Dataframe и получил эту ошибку здесь

unsupported operand type(s) for +: 'datetime.date' and 'datetime.time'

Ответы [ 2 ]

1 голос
/ 28 января 2020

Попробуйте использовать pd.to_datetime и pd.to_timedelta:

df['Starttime'] = pd.to_datetime(df['Date'].map(str) + ' ' + df['Time'].map(str))
df['Endtime'] = df['Starttime'] + pd.to_timedelta(df['TimeDelta'])
1 голос
/ 28 января 2020

Сначала преобразуйте date s и time s в строки как Series.astype, а затем используйте to_datetime, для второго столбца используйте to_timedelta:

df = pd.DataFrame({'Date': pd.to_datetime(['06.12.2019','06.12.2019']).date,
                   'Time': pd.to_datetime(['17:20:10','17:20:31']).time,
                   'TimeDelta':['00:00:21','14:31:09']})

df['Starttime'] = pd.to_datetime(df['Date'].astype(str) + ' ' + df['Time'].astype(str))
df['Endtime'] = df['Starttime'] + pd.to_timedelta(df['TimeDelta'])
print (df)
         Date      Time TimeDelta           Starttime             Endtime
0  2019-06-12  17:20:10  00:00:21 2019-06-12 17:20:10 2019-06-12 17:20:31
1  2019-06-12  17:20:31  14:31:09 2019-06-12 17:20:31 2019-06-13 07:51:40
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...