gpt4 book ai didi

python - 清理 pandas 的日期时间字符串列

转载 作者:行者123 更新时间:2023-12-01 02:04:09 25 4
gpt4 key购买 nike

我目前有一些日期字符串形式的数据,我想将其标准化为零填充的 %H:%M:%S 字符串。在其原始形式中,数据在以下方面偏离了标准格式:

  • 时间未用零填充(例如“2:05:00”)
  • 可以有尾随空格(例如“2:05:00”)
  • 可能会显示超过 24 小时的时间(例如“25:00:00”)

目前,这就是我所拥有的:

df['arrival_time'] = pd.to_datetime(df['arrival_time'].map(lambda x: x.strip()), format='%H:%M:%S').dt.strftime('%H:%M:%S')

但是我在超过 24 小时的时间上收到错误。有没有好方法将此数据框列转换为正确的格式?

最佳答案

我相信你需要:

df = pd.DataFrame({'arrival_time':['2:05:00','2:05:00','25:00:00'],})

df['arrival_time'] = df['arrival_time'].str.strip().str.zfill(8)
print (df)
arrival_time
0 02:05:00
1 02:05:00
2 25:00:00

或者:

df['arrival_time'] = pd.to_datetime(df['arrival_time'].str.strip(), errors='coerce')
.dt.strftime('%H:%M:%S')
print (df)
arrival_time
0 02:05:00
1 02:05:00
2 NaT

或者:

df['arrival_time'] = (pd.to_timedelta(df['arrival_time'].str.strip())
.astype(str)
.str.extract('\s.*\s(.*)\.', expand=False))
print (df)
arrival_time
0 02:05:00
1 02:05:00
2 01:00:00

关于python - 清理 pandas 的日期时间字符串列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49229010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com