Панды: Проверьте, является ли значение временем эпохи, используя 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