【问题标题】:python pandas: split string into date and time in datetime formatpython pandas:以日期时间格式将字符串拆分为日期和时间
【发布时间】:2017-09-20 04:11:31
【问题描述】:

我的数据框 df 中有一个字段,标记为日期,但经过大量测试后,我发现它是一个字符串而不是日期格式。

Transaction_id | Date
ABC              4/1/2016 9:13:58 PM
CDE              10/3/2015 10:12:25 AM
EFG              12/12/2017 3:02:45 PM

我需要将日期列拆分为日期和时间,并且我希望它们采用日期时间格式。我不知道如何使用正则表达式来做到这一点,因为长度不同。

输出:

Transaction_id | Date                    | Date2       | Time            
ABC              4/1/2016 9:13:58 PM       04/01/2016    21:13:58
CDE              10/3/2015 10:12:25 AM     10/03/2016    10:12:25
EFG              12/12/2017 3:02:45 PM     12/12/2017    15:02:45

【问题讨论】:

  • 仅供参考,您的日期格式不一致。第一行是 12 小时格式,其他是 24 小时格式。
  • 对不起 - 错字;应该是 3 而不是 15;已解决,谢谢

标签: python pandas datetime


【解决方案1】:

请注意,我放置了一个errors='coerce' 来处理无意义的日期数据。

date2 = pd.to_datetime(df.Date, errors='coerce')

df.assign(Date2=date2.dt.date, Time=date2.dt.time)

  Transaction_id                   Date       Date2      Time
0            ABC    4/1/2016 9:13:58 PM  2016-04-01  21:13:58
1            CDE  10/3/2015 10:12:25 AM  2015-10-03  10:12:25
2            EFG  12/12/2017 3:02:45 PM  2017-12-12  15:02:45

【讨论】:

  • 日期解析问题,9:13:58 PM 应该是17:13:58?
  • 谢谢...会修复
  • 数据与 12 小时和 24 小时时间戳不一致。
  • 太棒了!非常感谢!
  • @jeangelj 还没有。这已破了。 %p 指令未得到遵守。我正在寻找解决方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 2018-09-16
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
相关资源
最近更新 更多