【问题标题】:time data 'Month' does not match format '%Y-%b' (match)时间数据“月份”与格式“%Y-%b”不匹配(匹配)
【发布时间】:2020-11-05 18:06:38
【问题描述】:

您好,我正在处理下面给出的数据集

Month,Travellers('000)
Jan-91,1724
Feb-91,1638
Mar-91,1987
Apr-91,1825
May-91,
Jun-91,1879

我正在使用下面的代码来格式化日期

data = pd.read_csv('Metrail+dataset.csv', header = None)
data.columns = ['Month','Travellers']
data['Month'] = pd.to_datetime(data['Month'], format='%m-%Y')
data = data.set_index('Month')
data.head(12)

但是,得到以下错误

ValueError: time data 'Month' does not match format '%m-%Y' (match)

有人能帮我看看错误是什么吗?任何有用的链接可以帮助我了解更多关于日期格式的信息

【问题讨论】:

    标签: python python-3.x datetime


    【解决方案1】:
    1. %Y4 位数年份 %y2 位数年份

    2. %m 用于带数字的月份 %b 用于缩短月份名称

    同时删除header=None,因为这会将标题行计为数据,这是错误的

    data = pd.read_csv('data.csv')
    data.columns = ['Month', 'Travellers']
    data['Month'] = pd.to_datetime(data['Month'], format='%b-%y')
    

    【讨论】:

    • 仍然报错“ValueError: time data 'Month' does not match format '%m-%y' (match)”
    • data = pd.read_csv('Metrail+dataset.csv', header = None) data.columns = ['Month','Travellers'] data['Month'] = pd.to_datetime(data['Month'], format='%m-%y') data = data.set_index('Month')data.head(12)
    • @Newlearner 你还有 2 个其他错误,看看我的代码
    【解决方案2】:

    使用%b 和(如上所述)%y

    data['Month'] = pd.to_datetime(data['Month'], format='%b-%y')
    

    来自docs

    %b 月份作为语言环境的缩写名称。九月

    【讨论】:

    • 得到这个错误 ValueError: time data 'Month' does not match format '%b-%y' (match)
    猜你喜欢
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 2021-10-31
    • 2021-04-18
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    相关资源
    最近更新 更多