Pandas:使用 python 检查值是否为纪元时间

Pandas: Check if value is epoch time using python

我有一个读取这样的 csv 的脚本:

df = pd.read_csv("short.csv", parse_dates=['date'])

"date" 列可以有任何类型的日期格式并且工作正常,因为我将日期转换为纪元时间,如下所示:

df.date = pd.to_timedelta(df.date).astype('timedelta64[s]')

一个有效的例子是有一个像这样的 csv:

date
2010-07-08 21:24:52
2010-07-08 21:24:53

问题是当 csv 中的日期列已经是纪元时间时,转换非常糟糕。那么,如何在进行转换之前检查该列是否已经处于纪元时间?

有问题的 csv 是:

date
1433367800
1433367801

提前致谢

我认为你可以先省略 read_csv 中的解析 datetime 并通过 to_numeric with notnull:

检查纪元 datetime
df = pd.read_csv("short.csv")

print df
         date
0  1368431150
1  1368431149
2  2015-05-18

print pd.to_numeric(df.date, errors='coerce').notnull()
0     True
1     True
2    False
Name: date, dtype: bool