首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将时间格式从1/1/1900 10:00:00 PM更改为10:00 PM

将时间格式从1/1/1900 10:00:00 PM更改为10:00 PM
EN

Stack Overflow用户
提问于 2019-05-21 07:15:44
回答 1查看 77关注 0票数 0

我目前正在构建一个程序来跟踪登录/注销,数据被导出为类似于"5:00AM“的字符串,我使用以下代码将数据从字符串转换为datetime64ns

代码语言:javascript
复制
df = pd.DataFrame({ 'LoginTime' : ["10:00PM", "5:00AM", "11:00PM","7:00AM"],
                  'Logout Time' : ["6:00AM","2:00PM", "5:00AM", "5:00PM"]})

for c in df.columns:
      if c == 'LoginTime':
          df['LoginTime'] = pd.to_datetime(df['LoginTime'], format='%I:%M%p')
      elif c == 'Logout Time':
          df['Logout Time'] = pd.to_datetime(df['Logout Time'], format='%I:%M%p')

输出结果如下:

代码语言:javascript
复制
        LoginTime         Logout Time
      0 1900-01-01 22:00:00 1900-01-01 06:00:00
      1 1900-01-01 05:00:00 1900-01-01 14:00:00
      2 1900-01-01 23:00:00 1900-01-01 05:00:00
      3 1900-01-01 07:00:00 1900-01-01 17:00:00
      LoginTime      datetime64[ns]
      Logout Time    datetime64[ns]

代码按预期工作,并将字符串更改为时间格式,但是,我注意到格式是1/1/1900 10:00:00 PM,我想知道是否有一种方法可以只获取像这样的时间,而不影响数据类型为datetime64ns,因为我必须为登录/注销创建验证

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2019-05-21 07:41:30

在将其转换为datetime格式后尝试使用dt.strftime

代码语言:javascript
复制
df = pd.DataFrame({'LoginTime':['1/1/1900 10:00:00 PM', '1/2/2018 05:00:00 AM']})

              LoginTime
0  1/1/1900 10:00:00 PM
1  1/2/2018 05:00:00 AM

代码语言:javascript
复制
df['LoginTime'] = pd.to_datetime(df['LoginTime']).dt.strftime('%I:%M %p')

  LoginTime
0  10:00 PM
1  05:00 AM
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56229284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档