У меня есть набор данных с отметкой времени в формате дд / мм / гггг чч: мм: сс. Я хочу извлечь месяц и год для всего столбца. Итак, я использовал следующий код:
Извлечение года
`df['Year'] = pd.DatetimeIndex(df['timestamp']).year`
Извлечение месяца
`df['month_num'] = pd.DatetimeIndex(df['timestamp']).month`
Преобразование числа месяца в название месяца
`df['Month'] = df['month_num'].apply(lambda x: calendar.month_abbr[x])`
`df.drop(['month_num'], axis=1, inplace=True)`
Однако приведенное выше возвращает неправильный месяц, поскольку иногда это занимает месяц из второй пары деталей (как если бы формат даты был в дд / мм / гггг, что на самом деле так и есть), а иногда берется месяц из первой пары деталей (как если бы формат даты был в мм / дд / гггг , который не). Итак, как вы можете видеть ниже, он возвращает «февраль» вместо того, что должно быть «янв», хотя «De c» является правильным.
`02/01/2020 12:07:00 EURUSD EUR 138,476.70 2020 Feb`
`02/01/2020 12:02:12 GBPHKD GBP 13,545.93 2020 Feb`
`31/12/2019 16:35:48 GBPUSD USD 537.60 2019 Dec`
`31/12/2019 16:29:34 GBPHKD HKD 279.17 2019 Dec`
Я также попытался изменить исходный формат метки времени на гггг-мм-дд, но при изменении формата он продолжает брать месяц в другом порядке.
Есть идеи по этому поводу? Ура!