Панды: Проверьте, является ли значение временем эпохи, используя python

У меня есть скрипт, который читает CSV, как это:

df = pd.read_csv("short.csv", parse_dates=['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

заранее спасибо

1 ответ

Решение

Я думаю, что вы можете сначала пропустить разбор datetime в read_csv и проверь эпоху datetime от to_numeric с notnull:

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
Другие вопросы по тегам