我正在从Excel工作表导入数据,其中有一个“持续时间”字段显示为[h]:mm(以便显示总小时数)。我理解,在下面,这只是作为浮点数的天数。
我想在Pandas Dataframe 中将其作为timedelta
列或类似列使用,但无论我做什么,它都会删除超过24小时的任何小时(例如,天部分)。
Excel数据(突出显示超过24小时):
Pandas进口(1天7小时51分钟):
BATCH_NO Duration
354 7154 04:36:00
465 7270 06:35:00
466 7271 08:05:00
467 7272 05:54:00
468 7273 09:10:00
472 7277 06:15:00
476 7280 10:23:00
477 7284 06:09:00
499 7313 06:46:00
503 7322 05:27:00
510 7333 14:15:00
515 7335 1900-01-01 07:51:00
516 7338 07:51:00
517 7339 09:00:00
518 7339 05:29:00
519 7339 09:00:00
520 7339 05:29:00
522 7342 12:10:00
525 7343 08:00:00
530 7346 08:25:00
运行to_datetime
转换只会删除列的天(整数)部分:
BATCH_NO Duration
354 7154 04:36:00
465 7270 06:35:00
466 7271 08:05:00
467 7272 05:54:00
468 7273 09:10:00
472 7277 06:15:00
476 7280 10:23:00
477 7284 06:09:00
499 7313 06:46:00
503 7322 05:27:00
510 7333 14:15:00
515 7335 07:51:00
516 7338 07:51:00
517 7339 09:00:00
518 7339 05:29:00
519 7339 09:00:00
520 7339 05:29:00
522 7342 12:10:00
525 7343 08:00:00
530 7346 08:25:00
我尝试过通过将dtype固定为float
进行导入,但只有str
或object
可以工作-dtype={'Duration': str}
可以工作。float
给出了错误float() argument must be a string or a number, not 'datetime.time'
,即使使用str
或object
,Python仍然认为列i是datetime.time
理想情况下,我不想在中间步骤中更改Excel源数据或导出为.csv。
1条答案
按热度按时间xoefb8l81#
如果我没记错的话,导入的对象是
datetime
和time
,日期时间为儒略历。因此,您必须使用自定义函数进行转换:
输出: