【发布时间】:2019-03-27 23:12:48
【问题描述】:
我有一个 .xlsb 文件,我想使用 pandas 进行分析。我找到了如何使用 pyxlsb 打开文件并创建另一个数据集。但是,现在的问题是时间格式已更改为不同的数字格式(例如 41256)。
我现在使用的代码是:
dataset = []
with open_xlsb(file) as wb: #opening an xlsb file workbook
with wb.get_sheet(1) as sheet1:
for row in sheet1.rows():
dataset.append([item.v for item in row])
dataset= pd.DataFrame(dataset[1:], columns=dataset[0])
我已经尝试过如下的convert_date:
convert_date(dataset)
我也尝试过 to_datetime 函数,但不确定我是否正确使用它。作为参考,我正在使用的数据集在多列和多行中有日期,所以我正在寻找一种方法将它们全部转换为正确的格式,同时忽略任何错误。
编辑:所以我没有包含“日期”的单列,而是有多个列,例如 StartDate、EndDate、Last Updated 和其他一些列。我想看到的结果是,如果我转到一个列,例如 dataset.columns['StartDate'],我想获得一个日期值,例如 15/03/2019,而不是 42156。
任何帮助将不胜感激!
【问题讨论】:
-
您在寻找
pandas特定的解决方案吗?如果没有,我相信你可以通过datetime模块完成此操作 -
这里的预期输出是什么?您的标题和问题内容不太相符。
-
这是一个推测的骗局,因为我不确定在库之间转换的确切日期格式(将数字输入转换为日期格式)
-
你的标题是“MM/DD/YYY”。你真的不想要一个 3 位数的年份,是吗? (如果您的要求允许,请考虑使用 ISO-8601 格式“YYYY-MM-DD”。xkcd.com/1179)