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

如何用Python的Pandas将无引号时间戳保存到Excel表格?

解决Pandas生成时间戳并导出Excel的格式问题

问题分析

  1. 你两次给同一单元格xls2[column_name][row_number]赋值,最终只会保留end_timestamp,若要将两个时间戳存入同一列,需指定不同行。
  2. 使用__str__()转换Timestamp会生成默认格式的字符串,无法自定义时间格式。
  3. 链式索引xls2[column_name][row_number]可能触发SettingWithCopyWarning,建议用.at或.loc安全赋值。

解决方案

方案1:生成自定义格式字符串并保存

直接将Timestamp格式化为目标字符串格式后写入Excel:

import pandas as pd
import datetime

# 生成时间戳并格式化为指定字符串
start_timestamp = pd.Timestamp(2023, 6, 1, 0, 0, 0).strftime("%Y-%m-%d %H:%M:%S")
# 示例:生成带指定时分秒的结束时间
end_timestamp = pd.Timestamp(2023, 6, 30, 8, 5, 0).strftime("%Y-%m-%d %H:%M:%S")

# 写入同一列的不同行
xls2.at[row_number, column_name] = start_timestamp
xls2.at[row_number + 1, column_name] = end_timestamp

# 若需将两个时间戳放在同一单元格,可使用分隔符拼接
# xls2.at[row_number, column_name] = f"{start_timestamp} | {end_timestamp}"

方案2:让Excel识别为原生时间类型并设置格式

如果希望Excel将值识别为可编辑的时间类型(而非纯字符串),保留Timestamp类型,再通过ExcelWriter设置单元格格式:

import pandas as pd

# 生成Timestamp对象(不转字符串)
start_timestamp = pd.Timestamp(2023, 6, 1, 0, 0, 0)
end_timestamp = pd.Timestamp(2023, 6, 30, 8, 5, 0)

# 写入Excel
xls2.at[row_number, column_name] = start_timestamp
xls2.at[row_number + 1, column_name] = end_timestamp

# 保存时设置时间格式
with pd.ExcelWriter("your_file.xlsx", engine="openpyxl") as writer:
    xls2.to_excel(writer, index=False)
    worksheet = writer.sheets["Sheet1"]
    # 将目标列设置为自定义时间格式(替换为你的列字母,比如'A')
    column_letter = "A"
    worksheet.column_dimensions[column_letter].number_format = "yyyy-mm-dd hh:mm:ss"

关键要点

  • 用strftime("%Y-%m-%d %H:%M:%S")自定义时间字符串格式,替代默认的__str__()方法。
  • 优先使用.at[row, col]或.loc[row, col]进行赋值操作,避免链式索引的潜在问题。
  • 若需Excel原生时间支持,保留Timestamp类型并设置单元格格式,而非转成字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:58:29