如何转换DataFrame中时间列的数据格式?
解决12小时制时间字符串转24小时制格式问题
你的代码存在几个问题:没必要用循环逐行处理(pandas支持矢量化操作)、错误覆盖了date列数据、直接对Series调用strftime会报错(需用dt.strftime)。
直接用以下方式即可完成转换:
- 用
pd.to_datetime解析带AM/PM的时间字符串,指定匹配格式 - 用
dt.strftime转换为24小时制的HH:MM格式
完整示例代码
import pandas as pd # 针对你的DataFrame tbpoteri处理time列 tbpoteri['time'] = pd.to_datetime(tbpoteri['time'], format='%I %p.').dt.strftime('%H:%M')
格式参数说明
%I:匹配12小时制的小时数(1-12)%p:匹配AM/PM标记(对应输入里的a.m./p.m.)- 格式里的
.要保留,因为你的时间字符串是8 p.m.这种带点的格式
如果遇到12 p.m.(中午12点)、12 a.m.(凌晨12点)这类边界情况,上述方法也能正确转换为12:00和00:00。
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

