如何求取DataFrame列中hh-mm-ss格式TimeDelta数据的中位数
解决方法
方法1:直接将已得到的秒数中位数转为hh:mm:ss格式
如果你已经算出了秒级的中位数,比如变量名为median_sec,直接用Python内置的datetime模块转换即可:
import datetime # 示例中位数秒数对应23:59:17 median_sec = 86357 # 转换为指定格式 result = str(datetime.timedelta(seconds=median_sec))
最终得到的result就是符合要求的23:59:17格式结果。
方法2:无需手动转秒,直接对TimeDelta列计算中位数并格式化
你不需要手动把df['diff']转成秒再计算中位数,pandas原生支持对timedelta类型的列直接计算中位数,操作更简洁:
import pandas as pd # 先确认df['diff']为timedelta类型,若为字符串可先转换 df['diff'] = pd.to_timedelta(df['diff']) # 直接计算中位数并转成字符串格式 median_result = str(df['diff'].median())
内容的提问来源于stack exchange,提问作者Rinat Devyatyarov
相关产品推荐
相关产品推荐

