关于python:pandas从datetime转换为整数时间戳

pandas convert from datetime to integer timestamp

考虑到python中的pandas数据帧有一个名为time的整数类型的列,我可以使用以下指令将其转换为datetime格式。

1
df['time'] = pandas.to_datetime(df['time'], unit='s')

所以现在该列的条目如下:2019-01-15 13:25:43

将字符串恢复为整数时间戳值(表示从1970-01-01 00:00:00开始经过的秒数)的命令是什么?

我检查了pandas.Timestamp但找不到转换实用程序,我无法使用pandas.to_timedelta

这次转换有用吗?


timedelta64上使用.dt.total_seconds()

1
2
3
4
5
6
import pandas as pd
df = pd.DataFrame({'time': [pd.to_datetime('2019-01-15 13:25:43')]})

pd.to_timedelta(df.time).dt.total_seconds()
# or
(df.time - pd.to_datetime('1970-01-01')).dt.total_seconds()

产量

1
2
0    1.547559e+09
Name: time, dtype: float64

您可以使用astype(int)对int进行类型转换并将其除以10**9以获取unix时期开始的秒数。

1
2
3
4
import pandas as pd
df = pd.DataFrame({'time': [pd.to_datetime('2019-01-15 13:25:43')]})
df_unix_sec = pd.to_datetime(df['time']).astype(int)/ 10**9
print(df_unix_sec)