首页 > 解决方案 > 熊猫数据框自定义格式字符串到时间

问题描述

我有一个看起来像这样的数据框

          DEP_TIME
0         1851
1         1146
2         2016
3         1350
4          916
          ...
607341     554
607342     633
607343     657
607344     705
607345     628

我需要获取此列DEP_TIME中的每个值以具有格式hh:mm。所有单元格都是类型string,并且可以保持该类型。

一些单元格仅缺少冒号(第 0 到 3 行),其他单元格也缺少前导 0(第 4+ 行)。有些单元格是空的,理想情况下应该有字符串值 0。

因为我有几百万条记录,所以我需要以一种有效的方式来做这件事。我该怎么做?

标签: pythonpandasdataframe

解决方案


to_datetime与 一起使用Series.dt.strftime

df['DEP_TIME'] = (pd.to_datetime(df['DEP_TIME'], format='%H%M', errors='coerce')
                   .dt.strftime('%H:%M')
                   .fillna('00:00'))

print (df)
       DEP_TIME
0         18:51
1         11:46
2         20:16
3         13:50
4         09:16
607341    05:54
607342    06:33
607343    06:57
607344    07:05
607345    06:28

推荐阅读