【发布时间】:2018-07-31 21:36:03
【问题描述】:
我刚刚编写了这个函数来根据 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
我做错了什么?!
【问题讨论】:
-
请发布您的数据集的子集和您正在寻找的输出
-
这就是
return语句的工作原理。一旦您的函数遇到 return 语句,它就会立即返回到调用者函数。如果取消注释 return 语句,它将为第一个索引返回age的值,无论您有多少行。它甚至不会处理下一个索引。你对这个功能有什么期望? -
我试图根据该公式获取 DataFrame 中每一行的年龄。
-
在这种情况下,您可以将这些年龄存储到一个列表中并在循环之后返回该列表。
标签: python function dataframe data-science data-analysis