python: гистограммная диаграмма значений timedelta

#python #matplotlib #histogram #timedelta

#python #matplotlib #гистограмма #timedelta

Вопрос:

У меня есть df с информацией [‘time_start’,’time_end’] со столбцами типа datetime. Добавление нового столбца:

  df['period'] = df['time_end'] - df['time_start']
  

Затем я хотел бы понять гистограмму «периода» и попытаться построить график:

 plt.hist(df['period'], color = 'cyan', edgecolor = 'black', bins = int(180/10))
plt.show()
  

и верните ошибку:

 UFuncTypeError: Cannot cast ufunc 'less' input 1 from dtype('float64') to dtype('<m8[ns]') with casting rule 'same_kind'
  

между тем, plt из df[‘time_start’] работает нормально.
если бы я изменил значение ‘delta’ на секунды на:

  df['period'] = (df['time_end'] - df['time_start']).dt.seconds
  

он также отлично работает.

Не могли бы вы объяснить, как анализировать данные timedelta?

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

1. Можете ли вы показать, как df.period.head() это выглядит? Это может быть что-то простое, например, сначала нужно преобразовать в float: (df.time_end - df.time_start).astype(float) ? Без воспроизводимого примера мне трудно быть уверенным

2. @MichaelSilverstein вот оно: 0 0 дней 01:21:20.034990 1 0 дней 19:39:04.498480 2 5 дней 21:33:43.898156 3 0 дней 14:15:47.531027 4 0 дней 15:17:58.905265 Имя: rent_time, dtype: timedelta64[ns]

3. что касается вашего кода, я бы предложил использовать .total_seconds() не только .seconds . Кроме этого, » как анализировать данные timedelta » на самом деле не является вопросом программирования (= не по теме на SO)…

4. @MrFuppes Спасибо!