首页 > 解决方案 > 如何在 DataFrame 列中找到中位数?

问题描述

df['差异']

  1. 23:59:01
  2. 23:59:13
  3. 23:59:17
  4. 23:59:27
  5. 23:59:52

hh-mm-ss 数据是通过 TimesDelta 计算会话之间的差异后获得的。将时间转换为秒并找到中位数。如何找到 hh-mm-ss 格式的中位数?

标签: pythonpandasdataframemedian

解决方案


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

推荐阅读