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

Python中将pandas DataFrame保存为xlsb格式及时区日期处理问题

问题描述

现有一个包含5列的DataFrame,其中日期列为Object类型,数据样例如下:

DATE
0   2020-06-01T00:00:00.000Z
1   2021-08-01T00:00:00.000Z
2   2021-06-01T00:00:00.000Z
3   2021-07-01T00:00:00.000Z
4   2021-01-01T00:00:00.000Z

需要将该DataFrame转换为xlsb格式用于后续Excel分析。
此前尝试过移除日期列的时区组件、将日期列转换为YMD格式,但转换完成后日期列仍有时区组件,在R中执行缺失值填充、异常值处理时无法正常提取年、月、日字段,因此打算先将DataFrame导出为xlsb格式再重新导入,以此消除时区组件,也欢迎更优的移除时区、转换YMD格式的方案。

解决方案

方案1:直接移除日期列时区(更优)

无需通过导出导入xlsb绕路,直接对日期列做格式转换即可完全消除时区信息,处理后的日期列可直接在Python、R中正常提取年月日字段:

  1. 依赖安装(若未安装pandas):pip install pandas
  2. 执行转换代码:
import pandas as pd

# 转换为datetime类型后移除时区信息
df['DATE'] = pd.to_datetime(df['DATE']).dt.tz_localize(None)

# 若需要直接输出为YYYY-MM-DD格式的字符串,可替换为以下代码
# df['DATE'] = pd.to_datetime(df['DATE']).dt.strftime('%Y-%m-%d')

方案2:导出为xlsb格式

如果仍需要导出xlsb格式文件,可通过pyxlsb引擎实现:

  1. 依赖安装:pip install pandas pyxlsb
  2. 执行导出代码:
# index=False表示不导出pandas自带的行索引
df.to_excel('输出文件.xlsb', engine='pyxlsb', index=False)

导出后的xlsb文件重新导入时,日期列会自动识别为无时区的日期格式,可正常进行后续处理。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:45:07