【问题标题】:How to convert military time format (e.g. 1305) to hh:mm (e.g. 13:05) in python?如何在python中将军事时间格式(例如1305)转换为hh:mm(例如13:05)?
【发布时间】:2020-12-08 10:56:20
【问题描述】:

假设我有这个简单的数据框:

df = {'time': [1305, 850, 6, 1210], 'freq': [10, 15, 20, 25]}
df = pd.DataFrame(df, columns = ['time','freq'])

    time    freq
0   1305    10
1   850     15
2   6       20
3   1210    25

其中 1305 表示 13:05,805 表示 08:05,6 表示 00:06,1210 表示 24 小时制的 12:10。

使用python,如何将'time'列转换为hh:mm格式,如上图?

真的很难解决这个问题,所以非常感谢任何帮助:)

【问题讨论】:

标签: python pandas dataframe time


【解决方案1】:

您可以将列转换为字符串,添加前导零并转换为日期时间:

pd.to_datetime(df['time'].astype(str).str.zfill(4), format='%H%M').dt.time

0    13:05:00
1    08:50:00
2    00:06:00
3    12:10:00

【讨论】:

  • 感谢您的回答 :) 您知道如何删除秒数并将其保留为 hh:mm 吗?
  • 您可以将dt.time 替换为dt.strftime('%H:%M')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-16
  • 2020-05-24
  • 2018-07-11
  • 2021-06-06
相关资源
最近更新 更多