如何将Pandas生成的timedelta类型运算结果导出至Excel?
解决Pandas Timedelta中位数无法导出到Excel的问题
核心问题原因
你拿到的time_resolved是单个timedelta对象,而非Pandas的DataFrame/Series,这类单个对象没有to_excel方法,必须先将其转换为Pandas支持导出的结构,再处理格式。
解决方案
方法1:直接包装成DataFrame/Series导出(保留Timedelta格式)
将单个timedelta值放进DataFrame,Pandas会自动处理导出格式,新版Excel能识别为时间差:
# 假设已初始化ExcelWriter:writer = pd.ExcelWriter('result.xlsx') df2 = pd.DataFrame({'中位数处理时长': [time_resolved]}) df2.to_excel(writer, sheet_name="1", index=True) # 记得关闭writer writer.close()
方法2:转换为数值类型导出(方便后续计算)
如果需要纯数字格式,可将timedelta转换为总秒数、分钟数或小时数:
# 转换为总秒数 median_total_seconds = time_resolved.total_seconds() # 转换为总分钟数(保留小数) median_total_minutes = time_resolved.total_seconds() / 60 # 转换为总小时数(保留小数) median_total_hours = time_resolved.total_seconds() / 3600 # 包装成DataFrame导出 df2 = pd.DataFrame({ '中位数处理时长(秒)': [median_total_seconds], '中位数处理时长(分钟)': [median_total_minutes] }) df2.to_excel(writer, sheet_name="1", index=True) writer.close()
方法3:转换为可读字符串导出
如果需要保留"X days X hours X mins"的可读格式,直接转字符串后包装:
median_time_str = str(time_resolved) df2 = pd.DataFrame({'中位数处理时长': [median_time_str]}) df2.to_excel(writer, sheet_name="1", index=True) writer.close()
内容的提问来源于stack exchange,提问作者routine_dizzy
相关产品推荐
相关产品推荐

