小编Ixi*_*Ixi的帖子

将计算列添加到 Pandas 数据框

我对 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 时,列年龄总是包含“无”。你们能向我解释一下我做错了什么吗?谢谢!

python pandas

5
推荐指数
1
解决办法
4195
查看次数

标签 统计

pandas ×1

python ×1