在python中将时间转换为秒格式
Posted
技术标签:
【中文标题】在python中将时间转换为秒格式【英文标题】:Convert time to seconds format in python 【发布时间】:2019-03-04 09:21:52 【问题描述】:我有一个包含 2 列 Date
和 time
的数据框,输入字符串。
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 字符串转换为秒