Pandas read_excel无法正确解析日期-而是返回一个恒定日期

问题描述 投票:0回答:1

我已经使用以下代码读取了.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

我认为这是与日期编码本身有关的问题。有人知道如何解决此问题吗?

python pandas datetime date-parsing xlsb
1个回答
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。

© www.soinside.com 2019 - 2024. All rights reserved.