我对 Python、pandas 和编程完全陌生,我无法弄清楚以下几点:
我在 pandas 的帮助下访问了一个数据库,并将查询中的数据放入数据框 df 中。其中一列包含生日,可以有以下形式:- 01/25/1980(字符串)- 01/25(字符串)- 无(无类型)
现在,我想向 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
Run Code Online (Sandbox Code Playgroud)
行 print row["birthday"], row["age"] 正确打印生日和年龄。但是当我调用 print df 时,列年龄总是包含“无”。你们能向我解释一下我做错了什么吗?谢谢!