将带有月份和年份的列(“2020 年 8 月”...)转换为日期时间

时间:2021-07-18 11:37:31

标签: python pandas string datetime

我有包含一列月份和年份作为字符串的数据框:

>>>time           index   value
   January 2021     y        5
   January 2021     v        8
   May 2020         y        25
   June 2020        Y        13
   June 2020        x        11
   June 2020        v        10
...

我想将“时间”列更改为日期时间格式,以便我可以按时间顺序对表格进行排序。
当时间是带有月份名称和数字的字符串时,有什么办法吗?

#编辑: 当我这样做时:

result_Table['time']=pd.to_datetime(result_Table['time'],format='%Y-%m-%d')

我收到错误:

<块引用>

ValueError: 2021 年 1 月的时间数据与指定的格式不匹配

1 个答案:

答案 0 :(得分:1)

示例数据框:

df=pd.DataFrame({'time':['January 2021','May 2020','June 2020']})

如果要指定格式参数,则应使用 '%B %Y' 而不是 '%Y-%m-%d'

df['time']=pd.to_datetime(df['time'],format='%B %Y')
#OR
#you can also simply use:
#df['time']=pd.to_datetime(df['time'])

df 的输出:

    time
0   2021-01-01
1   2020-05-01
2   2020-06-01

有关格式代码的详细信息 visit here