值错误:时间数据'1980-02-10'与格式不匹配'%y%m%d'(匹配)熊猫



我有一个表,它包含这样的列DateOfBirth:

Gender  FullName           DateOfBirth
0    Male      Stan Smith       1980-02-10
1    Male      Nikola Griffin   1999-12-20
2    Female    Ruby Moore       1986-03-03

我想根据这个答案找出每个全名的年龄https://stackoverflow.com/a/26789573/12582712,我正在做这个

import datetime as DT
import io
import numpy as np
import pandas as pd
name = {'Gender': ['Male','Male','Female'],
'FullName': ['Stan Smith','Nikola Griffin','Ruby Moore'],
'DateOfBirth' : ['1980-02-10', '1999-12-20', '1986-03-03']
}
df = pd.DataFrame(name, columns = ['Gender', 'FullName', 'DateOfBirth'])
now = pd.Timestamp('now')
df['DateOfBirth'] = pd.to_datetime(df['DateOfBirth'], format='%y%m%d'

但当我在做最后一个代码时,它显示ValueError: time data '1980-02-10' does not match format '%y%m%d' (match)

您将日期格式设置为%y%m%d,相当于YearMonthDay但是,数据中有分隔年、月和日的连字符。因此,您需要在代码的最后一行中反映这一点

文档%y中还有一个两位数的年份(80、99、86(。您需要%Y,因为这是一个四位数的年份(1980、1999、1986(。

因此,你的最后一行应该是

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

相关内容

  • 没有找到相关文章

最新更新