我刚刚编写了此函数,以便根据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
我在做什么错?!
答案 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"])