python - 如何在 DataFrame 列中找到中位数?
问题描述
df['差异']
- 23:59:01
- 23:59:13
- 23:59:17
- 23:59:27
- 23:59:52
hh-mm-ss 数据是通过 TimesDelta 计算会话之间的差异后获得的。将时间转换为秒并找到中位数。如何找到 hh-mm-ss 格式的中位数?
解决方案
该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
推荐阅读
- c# - 如何在 C# 中获取 Outlook 投票按钮的结果
- powerbi - Power bi 计算比率
- node.js - 在 Docker 文件中访问 docker compose arm 变量
- javascript - 对对象进行配对 javascript
- .net - Azure DevOps nuget 工件延迟
- javascript - 反应将页脚背景从黑色更改为全高图像不起作用
- xml - SAP 的 XML(ATOM)问题使用 XSL 在 HTML 表中显示多个属性(在同一元素内)
- python - 在python中使用数组Y中每个元素的一定数量的副本创建数组X
- python-3.x - 谷歌colab中使用fastai的语义分割
- python - 我如何运行 sphinxtrain 脚本?