Pandas Индекс метки времени для данных: локализуйте и заменяйте часы и минуты - PullRequest
0 голосов
/ 23 апреля 2020

Вот мой необработанный файл csv:

Date,Open
2005-10-03,12.37
2005-10-04,12.5
2005-10-05,13.15

Мне нужно преобразовать его в:

Date,Open
2005-10-03 09:30:00-04:00,12.37
2005-10-04 09:30:00-04:00,12.5
2005-10-05 09:30:00-04:00,13.15

То есть:

  • Установить час на 9
  • Установите минуты на 30
  • Установите часовой пояс на США / Восточный

Итак, я пытаюсь:

df=pd.read_csv('myfile.csv', index_col=1)
df.index=df.index.tz_localize('US/Eastern').

Тогда

df.index.minute=30

Итак, я получаю:

AttributeError: невозможно установить атрибут

df.index.replace(hour=9, minute=30)

Итак, я получаю:

AttributeError: у объекта «DatetimeIndex» нет атрибута «replace»

(я также пытался с параметром parse_dates=True в функции read_csv.)

1 Ответ

1 голос
/ 23 апреля 2020

Вы можете добавить часы / минуты:

df['Date'] = pd.to_datetime(df['Date']).dt.tz_localize('US/Eastern')
df['Date'] += pd.to_timedelta('09:30:00')

Вывод:

                       Date   Open
0 2005-10-03 09:30:00-04:00  12.37
1 2005-10-04 09:30:00-04:00  12.50
2 2005-10-05 09:30:00-04:00  13.15
...