首页 > 解决方案 > 使用 dict 更改月份数​​据框值

问题描述

我无法使用 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)

我做错了什么还是有其他方法可以做到这一点?

标签: pythondataframedictionarydata-cleaning

解决方案


您可以使用.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

推荐阅读