You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas计算的浮点型时长转换为天和小时格式

将日均时长数值转换为“X天,Y小时”格式

数据准备与平均值计算

首先通过以下代码生成DataFrame并计算去除空值后的duration_time平均值:

import pandas as pd
from io import StringIO

df = """
case_id         duration_time  other_column
   3456         1              random value 1
   7891         3              ddd
   1245         0              fdf
   9073         null           111
 """
df= pd.read_csv(StringIO(df.strip()), sep='\s\s+', engine='python')

# 计算去除空值后的平均值
average_duration = df.duration_time.dropna().mean()
# 计算结果:1.3333333333333333

问题

如何将上述浮点数值结果转换为类似 average_duration = '1天,8小时' 的中文格式?(注:1.33天约等于1天7.92小时)

解决方案

通过拆分天数和小时数,再格式化字符串即可实现:

步骤1:拆分天数与小时数

  • 提取数值的整数部分作为完整天数
  • 将小数部分乘以24(1天=24小时)得到小时数,可根据需求选择四舍五入或直接取整

步骤2:格式化输出

编写代码实现格式转换:

days = int(average_duration)
# 四舍五入计算小时数,若需直接取整可替换为 int((average_duration - days)*24)
hours = round((average_duration - days) * 24)

# 根据天数和小时数生成对应格式
if days > 0 and hours > 0:
    formatted_duration = f"{days}天,{hours}小时"
elif days > 0:
    formatted_duration = f"{days}天"
elif hours > 0:
    formatted_duration = f"{hours}小时"
else:
    formatted_duration = "0小时"

print(f"average_duration = '{formatted_duration}'")

针对示例中的计算结果,运行代码后会输出:

average_duration = '1天,8小时'

内容的提问来源于stack exchange,提问作者William

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:15:28