#python #pandas #dataframe #median
Вопрос:
df[‘разница’]
- 23:59:01
- 23:59:13
- 23:59:17
- 23:59:27
- 23:59:52
данные hh-mm-ss получены после вычисления разницы между сеансами с помощью временной шкалы. Преобразовал время в секунды и нашел медиану. Как найти медиану в формате чч-мм-сс?
Ответ №1:
diff
Столбец необходимо преобразовать в числовые секунды.
import pandas as pd
def time2sec(t):
(h, m, s) = t.split(':')
return int(h) * 3600 int(m) * 60 int(s)
df = pd.DataFrame(['23:59:01','23:59:13','23:59:17','23:59:27','23:59:52'],columns=['diff'])
df['diff_sec'] = df['diff'].map(time2sec)
print(df)
median = df['diff_sec'].median()
print('median :',median)
diff diff_sec
0 23:59:01 86341
1 23:59:13 86353
2 23:59:17 86357
3 23:59:27 86367
4 23:59:52 86392
86357.0
Ответ №2:
Если ваши данные уже находятся в формате Timedelta, как вы упомянули, вы можете просто использовать df.median()
для получения медианы ряда.
Ответ №3:
Вы можете попробовать:
pd.to_timedelta(df['diff']).median()
pd.to_timedelta
преобразует строку даты в Timedelta. Затем мы можем использовать Series.median()
для получения медианы.
Результат:
Timedelta('0 days 23:59:17')