在数据帧的列中应用函数[Python]

2024-09-28 05:20:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚编写了这个函数来计算Python数据框中基于两列的年龄的person。不幸的是,如果一个函数使用return,那么该函数将为所有行返回相同的值,但是如果我使用print语句,那么该函数将为我提供正确的值

代码如下:

def calc_age(dataset):
    index = dataset.index
    for element in index:
        year_nasc = train['DT_NASCIMENTO_BENEFICIARIO'][element][6:]
        year_insc = train['ANO_CONCESSAO_BOLSA'][element]
        age = int(year_insc) - int(year_nasc)
        print ('Age: ', age)
        #return age

train['DT_NASCIMENTO_BENEFICIARIO'] = 03-02-1987

train['ANO_CONCESSAO_BOLSA'] = 2009

我做错什么了


Tags: 函数ageindexreturndttrainelementyear
1条回答
网友
1楼 · 发布于 2024-09-28 05:20:31

如果要从ANO_CONCESSAO_BOLSA中减去DT_NASCIMENTO_BENEFICIARIO的年份,df是您的数据帧:

# cast to datetime
df["DT_NASCIMENTO_BENEFICIARIO"] = pd.to_datetime(df["DT_NASCIMENTO_BENEFICIARIO"])
df["age"] = df["ANO_CONCESSAO_BOLSA"] - df["DT_NASCIMENTO_BENEFICIARIO"].dt.year

# print the result, or do something else with it:
print(df["age"])

相关问题 更多 >

    热门问题