Pandas导出CSV时datetime列仅显示日期或时间,如何同时显示二者
Pandas导出CSV时Time列显示完整日期时间的解决方法
问题原因梳理
- 示例2、3的问题很明确:你调用了
.dt.date/.dt.time方法,直接将datetime类型拆分为了只有日期/只有时间的对象,天然丢失了另一部分信息,导出自然不会显示完整内容。 - 示例1的问题是Pandas
to_csv方法的默认逻辑导致:如果datetime列的所有行的时间部分均为00:00:00,Pandas会自动省略时间部分,仅导出日期。
解决方法
方法1:导出时指定日期格式(推荐)
在调用to_csv时添加date_format参数,强制指定datetime列的输出格式即可:
posix_time = pd.to_datetime(df['Time'], unit='ms') df['Time'] = posix_time # 导出时指定日期时间格式 df.to_csv(r'dataframe.csv', index=False, header=True, date_format='%Y-%m-%d %H:%M:%S')
方法2:提前转成固定格式的字符串
也可以提前将Time列转成符合要求的字符串格式,避免Pandas自动调整格式:
posix_time = pd.to_datetime(df['Time'], unit='ms') # 转成自定义格式的字符串 df['Time'] = posix_time.dt.strftime('%Y-%m-%d %H:%M:%S') df.to_csv(r'dataframe.csv', index=False, header=True)
注意事项
如果导出后用Excel打开CSV文件,仍只显示日期,属于Excel的默认显示逻辑问题,并非导出失败:右键Time列的单元格 → 选择「设置单元格格式」→ 自定义格式输入yyyy-mm-dd hh:mm:ss即可看到完整的日期时间内容。
内容的提问来源于stack exchange,提问作者Luke Patrick
相关产品推荐
相关产品推荐

