Как найти медиану в столбце Фрейм данных?

#python #pandas #dataframe #median

Вопрос:

df[‘разница’]

  1. 23:59:01
  2. 23:59:13
  3. 23:59:17
  4. 23:59:27
  5. 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')