这个代码是如何工作的?有没有一种不同的方式来写它,使它更可读?

2024-04-19 19:23:41 发布

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

我正在学习python,我发现您可以使用.apply()将函数应用于列。我不明白为什么在这个场景中可以使用cols[0]。当我尝试运行df[0]时,我得到一个错误。但是,通过向函数传递数据的方式,我希望得到一个结果。为什么cols[0]是可接受的,而df[0]是不可接受的?你知道吗

def fills_na(cols):
    Age = cols[0] # i dont understand why this works. When running df_new[0] I get an error
    Pclass = cols[1]
    if pd.isnull(Age):
        if Pclass == 1:
            return 37
        elif Pclass == 2:
            return 29
        else:
            return 24
    else:
        return Age
# then this baby calls it
df['Age'] = df[['Age','Pclass']].apply(fills_na, axis = 1)

Tags: 函数dfagereturnif错误场景this