我有一个表,其中包含如下列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 但是,数据中有分隔年、月和日的连字符。因此,您需要在代码的最后一行反映这一点同样从{a1}{}开始是两位数的年份(80,99,86)。您需要
%Y
,因为这是一个四位数的年份(1980年、1999年、1986年)因此,您的最后一行应该是
相关问题 更多 >
编程相关推荐