我有一个数据框,其中包含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
软件包以外,其他人都知道如何在不安装任何软件包的情况下执行此操作?因为我无法在没有权限的服务器上安装软件包,所以上述三个软件包已预先安装。
谢谢。
答案 0 :(得分:3)
您可以使用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
答案 1 :(得分:1)
您可以尝试以下
df["datetime_column"] = (df["Date"] + " " + df["Time"]).to_datetime(infer_datetime_format=True)
(或者,如果您不像我这样懒惰,则可以指定实际格式)
df["seconds"] = df["datetime_column"].dt.strftime("%s").astype(int)