作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 .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(dataset)
最佳答案
我有一个类似的问题,由于 this answer 我能够克服它.
试试功能 datetime.fromordinal
来自 datetime
模块如下:
from datetime import datetime
# for integers
def convert_int_date(ordinal_date):
date_time = datetime.fromordinal(
datetime(1900, 1, 1).toordinal() + ordinal_date - 2
)
return date_time
dataset["StartDate"] = dataset["StartDate"].astype(int).apply(convert_int_date)
然后,您可以随意格式化您的日期。
dataset["StartDate"] = dataset["StartDate"].dt.strftime("%m/%d/%Y")
在我的特殊情况下,每个日期都由一个整数给出。不考虑小时、分钟和秒。如果您确实需要考虑这些(或者如果您有一个 float 数字作为日期),请尝试以下操作:
# for floats
def convert_float_date(ordinal_date):
hours, r = divmod(ordinal_date, 1)
minutes, r = divmod(r*60, 1)
seconds = r*60
date_time = datetime.fromordinal(
datetime(1900, 1, 1).toordinal() + ordinal_date - 2
)
datetime = date_time.replace(hour=hours, minute=minutes, second=seconds)
return date_time
dataset["StartDate"] = dataset["StartDate"].astype(float).apply(convert_float_date)
Credits
关于python - 将日期从 xlsb 文件格式化为 MM/DD/YYYY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55387880/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!