Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数据帧中应用函数';s列[Python]_Python_Function_Dataframe_Data Science_Data Analysis - Fatal编程技术网

在数据帧中应用函数';s列[Python]

在数据帧中应用函数';s列[Python],python,function,dataframe,data-science,data-analysis,Python,Function,Dataframe,Data Science,Data Analysis,我刚刚编写了这个函数来计算Python数据框架中基于两列的年龄的person。不幸的是,如果使用return函数,则该函数将为所有行返回相同的值,但如果使用print语句,该函数将为我提供正确的值 代码如下: def calc_age(dataset): index = dataset.index for element in index: year_nasc = train['DT_NASCIMENTO_BENEFICIARIO'][element][6:]

我刚刚编写了这个函数来计算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
列车['DT_NASCIMENTO_beniciario']=1987年2月3日

train['ANO_CONCESSAO_BOLSA']=2009


我做错了什么

如果您想从
无公会
中减去
DT\u NASCIMENTO\u beniciario
的年份,则
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"])

请发布您的数据集的一个子集和您正在寻找的输出这是一个小样本这就是
return
语句的工作原理。一旦您的函数点击了return语句,它就会立即返回到调用方函数。如果取消对return语句的注释,它将返回第一个索引的
age
值,无论有多少行。它甚至不会处理下一个索引。你希望从这个函数中得到什么?我试图根据这个公式得到数据帧中每一行的年龄。在这种情况下,你可以将这些年龄存储到一个列表中,并在循环后返回列表。