Python 将数据帧自定义格式字符串转换为时间
我有一个像这样的数据框Python 将数据帧自定义格式字符串转换为时间,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个像这样的数据框 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类型,并且可以保
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
我需要以一种有效的方式来做,因为我有几百万张唱片。如何操作?与以下一起使用:
重新导入
d=['1851'],
['1146'],
['2016'],
['916'],
['814'],
[''],
[np.nan]]
df=pd.DataFrame(d,列=['DEP_TIME'])
df['DEP_TIME']=df['DEP_TIME'].fillna('0')
df['DEP_TIME']=df['DEP_TIME'].apply(lambda y:'0'如果y==''else re.sub(r'(\d{1,2})(\d{2})$,lambda x:x[1]。zfill(2)+':'+x[2],y))
df
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
DEP_TIME
0 18:51
1 11:46
2 20:16
3 09:16
4 08:14
5 0