Pandas 将列中的时间字符串更改为 24 小时时间格式
Pandas Change time string in a column to 24 hour time format
大家好,我有一列 df['TimeEnd'],其中这些是字符串值,我正在尝试将它们转换为 24 小时时间格式。最简单的方法是什么?
Time End Counts
1058PM 56
0501PM 26
1145PM 24
1125PM 24
0605PM 20
使用to_datetime
with Series.dt.strftime
:
df['Time End'] = pd.to_datetime(df['Time End'], format='%I%M%p').dt.strftime('%H:%M')
print (df)
Time End Counts
0 22:58 56
1 17:01 26
2 23:45 24
3 23:25 24
4 18:05 20
如果有错误的值,如 1300PM
如果不匹配,请为错误值添加 errors='coerce'
,将格式转换为 H
(24H 格式)而不是 I
(12H格式)并通过解析的日期时间 d2
:
替换可能的错误值
print (df)
Time End Counts
0 1300PM 56
1 0501PM 26
2 1145PM 24
3 1125PM 24
4 0605PM 20
d1 = pd.to_datetime(df['Time End'], format='%I%M%p', errors='coerce')
d2 = pd.to_datetime(df['Time End'], format='%H%M%p', errors='coerce')
df['Time End'] = d1.fillna(d2).dt.strftime('%H:%M')
print (df)
Time End Counts
0 13:00 56
1 17:01 26
2 23:45 24
3 23:25 24
4 18:05 20
大家好,我有一列 df['TimeEnd'],其中这些是字符串值,我正在尝试将它们转换为 24 小时时间格式。最简单的方法是什么?
Time End Counts
1058PM 56
0501PM 26
1145PM 24
1125PM 24
0605PM 20
使用to_datetime
with Series.dt.strftime
:
df['Time End'] = pd.to_datetime(df['Time End'], format='%I%M%p').dt.strftime('%H:%M')
print (df)
Time End Counts
0 22:58 56
1 17:01 26
2 23:45 24
3 23:25 24
4 18:05 20
如果有错误的值,如 1300PM
如果不匹配,请为错误值添加 errors='coerce'
,将格式转换为 H
(24H 格式)而不是 I
(12H格式)并通过解析的日期时间 d2
:
print (df)
Time End Counts
0 1300PM 56
1 0501PM 26
2 1145PM 24
3 1125PM 24
4 0605PM 20
d1 = pd.to_datetime(df['Time End'], format='%I%M%p', errors='coerce')
d2 = pd.to_datetime(df['Time End'], format='%H%M%p', errors='coerce')
df['Time End'] = d1.fillna(d2).dt.strftime('%H:%M')
print (df)
Time End Counts
0 13:00 56
1 17:01 26
2 23:45 24
3 23:25 24
4 18:05 20