python - Pandas read_excel 不能正确解析日期 - 而是返回一个常量日期
问题描述
我已经阅读了一个 .xlsb 文件并使用以下代码解析了日期列:
dateparser = lambda x: pd.to_datetime(x)
data = pd.read_excel(r"test.xlsb", engine="pyxlsb",
parse_dates=["start_date","end_date"],
date_parser=dateparser
)
我在 .xlsb 文件中的输入列的格式为 DD/MM/YYYY(例如 26/01/2008)。作为上述代码的输出,例如:1970-01-01 00:00:00.000038840。只有最后 5 位数字发生变化。
如果我在不解析日期的情况下读取相同的文件,则相同的列是 float64 类型并且仅包含之前输出的最后 5 位数字(例如38840.0)。
我认为这是与日期编码本身相关的问题。有谁知道如何解决这个问题?
解决方案
我不确定你是否能够找出这个问题的答案。但是,以下是我解决它的方法:
from pyxlsb import convert_date
self.data: pd.DataFrame = pd.read_excel(self.file, sheet_name=self.sheet, engine='pyxlsb', header=0)
self.data["test"] = self.data.apply(lambda x: convert_date(x.SomeStupidDate), axis=1)
可以在此处找到更多详细信息:https ://pypi.org/project/pyxlsb/通过对“convert_date”执行 ctrl+F。
推荐阅读
- mongodb - 数据不移动到新的分片服务器 mongodb
- php - Chrome加载很长时间才能进入仪表板
- symfony - 根据实体属性ChoiceType多个属性(如何选择返回实体集合或一个实体)
- amazon-iam - 有没有办法为非活动的aws用户设置警报
- python-3.x - 烧瓶响应反斜杠问题
- python - 为什么即使输入是整数,我也会不断收到 TypeError?
- javascript - 如何在网站呈现之前检查 React/Gatsby 中的 window.innerWidth?
- tree - 使用队列的二叉树级别顺序遍历(数组实现)
- python - Box2D 关节伸出不合适的位置 - 允许物体通过。我怎样才能让它们更“紧”
- ios - swifty json 解析数组对象