【发布时间】:2023-04-01 23:23:01
【问题描述】:
目前我正在使用一个大数据框 (12x47800)。十二列之一是由整数秒组成的列。我想将此列更改为包含 datetime.time 格式的列。计划是我尝试更改名为“depTime”的列的数据框。因为我希望它是一个 datetime.time 并且它可以跨越午夜,所以我添加了 if 语句。这“有效”但真的很慢,就像人们想象的那样。有没有更快的方法来做到这一点?
我当前的代码,我唯一可以工作的代码是:
for i in range(len(schedule)):
t_sec = schedule.iloc[i].depTime
[t_min, t_sec] = divmod(t_sec,60)
[t_hour,t_min] = divmod(t_min,60)
if t_hour>23:
t_hour -= 23
schedule['depTime'].iloc[i] = dt.time(int(t_hour),int(t_min),int(t_sec))
提前谢谢各位。
Ps:我对 Python 很陌生,所以如果有人能帮助我,我将非常感激 :)
【问题讨论】:
-
您能否提供一个简短的数据示例?例如
schedule.head(20)
-
您确定您的列记录的是时间而不是持续时间吗?有一个区别,一天中的时间被限制为 [0-86400) 秒(闰秒为 86401),持续时间不受限制并且可以是负数。 Monty 在下午 10 点 3 分在 2 小时 35 分 5 秒内越过终点线 有一个时间和一个持续时间。您想在持续时间中使用
timedelta
,而不是time
。
标签:
python
pandas
datetime
seconds
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python:在数据框列中将秒转换为日期时间格式 - Python技术站