我完全是Python、pandas和编程的新手,对以下内容感到困惑:
我借助pandas访问了一个数据库,并将查询结果存储到一个名为df的数据框中。其中一列包含生日信息,可能有以下格式: - 01/25/1980(字符串) - 01/25(字符串) - None(NoneType)
现在,我想要添加一个用于存储数据库中人员年龄的新列到数据框df中。因此,我执行了以下操作:
def addAge(df):
today = date.today()
df["age"] = None
for index, row in df.iterrows():
if row["birthday"] != None:
if len(row["birthday"]) == 10:
birthday = df["birthday"]
birthdayDate = datetime.date(int(birthday[6:]), int(birthday[:2]), int(birthday[3:5]))
row["age"] = today.year - birthdayDate.year - ((today.month, today.day) < (birthdayDate.month, birthdayDate.day))
print row["birthday"], row["age"] #this is just for testing
addAge(df)
print df
这行代码print row ["birthday"],row["age"]可以正确打印出生日期和年龄,但是当我调用print df时,列“age”总是包含“None”。你们能否解释一下我做错了什么?谢谢!