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

时间:2018-07-31 21:36:03

标签: python function dataframe data-science data-analysis

我刚刚编写了此函数,以便根据Python DataFrame中的两列来计算年龄的人。不幸的是,如果使用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

我在做什么错?!

1 个答案:

答案 0 :(得分:0)

如果要从DT_NASCIMENTO_BENEFICIARIO中减去ANO_CONCESSAO_BOLSA的年份,而df是您的DataFrame:

# 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"])