Как преобразовать столбец панд в тип данных datetime? - PullRequest
0 голосов
/ 25 октября 2019

У меня есть фрейм данных, у которого есть метки времени типа данных «объект». Я хочу преобразовать весь фрейм данных в тип данных datetime. Также я хотел бы преобразовать все столбцы в эпоху Linux Nano секунд. Итак, я могу использовать этот датафрейм в PCA. введите описание изображения здесь

1 Ответ

1 голос
/ 25 октября 2019

Пример :

rng = pd.date_range('2017-04-03', periods=3).astype(str)
time_df = pd.DataFrame({'s': rng, 'a': rng})  
print (time_df)
           s          a
0 2017-04-03 2017-04-03
1 2017-04-04 2017-04-04
2 2017-04-05 2017-04-05

Использовать DataFrame.apply с преобразованием в дату-время, а затем в собственный формат эпохи путем преобразования в массив numpy, а затем в целые числа:

f = lambda x: pd.to_datetime(x, infer_datetime_format=True).values.astype(np.int64)
#pandas 0.24+
#f = lambda x: pd.to_datetime(x, infer_datetime_format=True).to_numpy().astype(np.int64)
time_df = time_df.apply(f) 
print (time_df)
                     s                    a
0  1491177600000000000  1491177600000000000
1  1491264000000000000  1491264000000000000
2  1491350400000000000  1491350400000000000
...