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
我有一个读取这样的 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