【发布时间】:2020-07-22 19:35:33
【问题描述】:
我正在尝试将列表中的生日转换为年龄。日期是字符串。
bday_list: ['1990-01-01', '1991-01-01', '1992-01-01']
到
bday_list: [30, 29, 28]
使用python3,我要转换的代码是:
for i in range(bday_list_length):
pd.to_datetime('today').year - pd.to_datetime(bday_list[i]).year
但是,当我运行它时:我收到以下错误:
Traceback(最近一次通话最后一次): 文件“C:/Users/user/PycharmProjects/DBlytics/notebook/poc/ageData.py”,第 60 行,在 pd.to_datetime('今天').year - pd.to_datetime(bday_list[i]).year AttributeError: 'NoneType' 对象没有属性 'year'
但是,当我在循环之外运行以下内容时,它会转换。
pd.to_datetime('today').year - pd.to_datetime(bday_list[i]).year
我不确定我做错了什么。
【问题讨论】:
-
试试
print(repr(bday_list[i])),你看到的最后一个是有问题的。例如,pd.to_datetime(None).year会引发相同的错误。 -
谢谢!错误与列表中的“空”条目有关。感谢您为我指明正确的方向!
-
@thehungrypanda121 - 然后使用
pd.to_datetime(bday_list, errors='coerce'),检查我的答案。