在python中将时间转换为秒格式

Posted

技术标签:

【中文标题】在python中将时间转换为秒格式【英文标题】:Convert time to seconds format in 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 格式,抱歉我忘记它之前叫什么了。 【参考方案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)

【讨论】:

谢谢!我会试一试的。

以上是关于在python中将时间转换为秒格式的主要内容,如果未能解决你的问题,请参考以下文章

在 Python Pandas DataFrame 中将 timedelta64[ns] 列转换为秒

在 python 2.7 中将包含 datetime.timedelta 的 numpy 数组转换为秒的优雅方法

仅在 javascript 中将 HH:MM:SS 字符串转换为秒

如何在 BigQuery 标准 SQL 中将时间戳转换为秒

在 JavaScript 中将 Dialogfow 持续时间系统实体从分钟转换为秒

如何在hive中将品种自定义时间戳转换为秒