изменение значений фрейма данных месяцев с помощью dict

#python #dataframe #dictionary #data-cleaning

#python #фрейм данных #словарь #очистка данных

Вопрос:

У меня возникли проблемы с использованием dict для замены значений в фрейме данных.

     m= { 'january': 1, 'february': 2, 'march': 3, 'april': 4, 'may': 5,'june': 6,'july': 7,
'august': 8, 'september': 9, 'october': 10, 'november': 11, 'december': 12}

df = pd.DataFrame({'place': {0: 'canada', 1: 'canada', 2: 'the united states'}, 'time': {0:  'february 11, 2018', 1: 'december 9, 2017', 2: 'january 18, 2018'}})

   place                      time
0  canada              february 11, 2018
1  canada              december 9, 2017
2  the united states   january 18, 2018
  

Я хочу изменить только названия месяцев на и я пробовал .replace и .map методы, но ничего не меняется

 dftp2.replace({'time': m })
dftp2['time'].map(m)
  

я сделал что-то не так или есть какие-либо другие способы сделать это?

Ответ №1:

Вы можете использовать .dt.strftime() для преобразования дат:

 df['time'] = pd.to_datetime(df['time']).dt.strftime('%-m %d, %Y')
print(df)
  

С принтами:

                place         time
0             canada   2 11, 2018
1             canada  12 09, 2017
2  the united states   1 18, 2018