【问题标题】:Convert time to seconds format in python在python中将时间转换为秒格式
【发布时间】:2019-03-04 09:21:52
【问题描述】:

我有一个包含 2 列 Datetime 的数据框,输入字符串。

      Date      Time
20/11/2017  22:49:05
20/11/2017  22:51:07
20/11/2017  22:53:07
20/11/2017  22:58:07

我想将这两列转换为一列,与 1970/01/01 相比以秒为单位。

除了time numpy pandas 包之外,任何人都知道如何在不安装任何包的情况下做到这一点?因为我不能在我没有权限的服务器上安装包,所以上面三个包是预先安装的。

提前致谢。

【问题讨论】:

  • 你的预期输出是什么?
  • 使用字符串或正则表达式库将每一行解析为结构化的时间数据。使用 `time.mktime()' 将结构化时间转换为 1970 年之后的秒数。请参阅此处的示例 tutorialspoint.com/python/time_mktime.htm
  • 我想把它转换成 UNIX 格式,抱歉我忘记它之前叫什么了。

标签: python pandas datetime time


【解决方案1】:

您可以使用datetime 系列的整数表示:

# convert to datetime
df['DateTime'] = pd.to_datetime(df.pop('Date') + ' ' + df.pop('Time'))

# extract seconds
df['unix_seconds'] = df['DateTime'].astype(np.int64) // 10**9

print(df)

             DateTime  unix_seconds
0 2017-11-20 22:49:05    1511218145
1 2017-11-20 22:51:07    1511218267
2 2017-11-20 22:53:07    1511218387
3 2017-11-20 22:58:07    1511218687

【讨论】:

  • 谢谢,这正是我需要的。
【解决方案2】:

你可以试试下面的

df["datetime_column"] = (df["Date"] + " " + df["Time"]).to_datetime(infer_datetime_format=True)

(或者如果你不像我一样懒惰,你可以指定实际格式)

df["seconds"] = df["datetime_column"].dt.strftime("%s").astype(int)

【讨论】:

  • 谢谢!我会试一试的。
猜你喜欢
  • 2013-08-27
  • 2019-07-04
  • 2023-03-03
  • 2013-09-17
  • 1970-01-01
  • 2023-04-01
  • 2014-01-29
  • 2011-06-17
  • 1970-01-01
相关资源
最近更新 更多