Pandas: Использование временной метки Unix в качестве индекса Datetime

Мое приложение включает в себя обработку данных (содержится в CSV), который имеет следующую форму:

Epoch (number of seconds since Jan 1, 1970), Value 1368431149,20.3 1368431150,21.4 .. 

В настоящее время я читаю CSV с использованием метода numpy loadtxt (может легко использовать read_csv из Pandas). В настоящее время для моей серии я преобразовываю поле временных меток следующим образом:

 timestamp_date=[datetime.datetime.fromtimestamp(timestamp_column[i]) for i in range(len(timestamp_column))] 

Я следую этому, установив timestamp_date в качестве индекса Datetime для моего DataFrame. Я попытался найти в нескольких местах, чтобы узнать, есть ли более быстрый (встроенный) способ использования этих временных меток Unix, но не нашел их. Многие приложения используют такую ​​временную терминологию.

  1. Есть ли встроенный метод обработки таких форматов временных меток?
  2. Если нет, то каков рекомендуемый способ обработки этих форматов?

Преобразуйте их в datetime64[s] :

 np.array([1368431149, 1368431150]).astype('datetime64[s]') # array([2013-05-13 07:45:49, 2013-05-13 07:45:50], dtype=datetime64[s]) 

Вы также можете использовать pandas to_datetime :

 df['datetime'] = pd.to_datetime(df["timestamp"], unit='s') 

Для этого метода требуется Pandas 0.18 или новее.

Вы также можете использовать Pandas DatetimeIndex

 pd.DatetimeIndex(df['timestamp']*10**9) 

*10**9 помещает его в формат, который он ожидает для таких временных меток.

Это хорошо, поскольку позволяет использовать в .date() такие функции, как .date() или .tz_localize() .