小编saa*_*ani的帖子

无法将 lambda 函数应用于数据集

该数据集包含 Pclass 列,其值为 (1, 2, 3) 和 Age。Age 列有一些空值。我想用不同阶层的人的中位年龄替换这些空值。一等舱人员的平均年龄为 37 岁,二等舱人员年龄中位数为 29 岁,三等舱人员年龄中位数为 24 岁。

所以这是我想要做的代码:

def fill_age(x):
    if pd.isna(x['Age']) and x['Pclass'] == 1:
        return 37
    elif pd.isna(x['Age']) and x['Pclass'] == 2:
        return 29
    elif pd.isna(x['Age']) and x['pclass'] == 3:
        return 24
    else:
        return x['Age']


df['Age'] = df.apply(fill_age)
Run Code Online (Sandbox Code Playgroud)

但这是我收到的错误:

KeyError                                  Traceback (most recent call last)
<ipython-input-126-7375a6b3c119> in <module>
----> 1 df['Age'] = df.apply(fill_age)

KeyError: 'Age'
Run Code Online (Sandbox Code Playgroud)

请让我知道我做错了什么。先感谢您。

python lambda if-statement dataframe pandas

1
推荐指数
1
解决办法
146
查看次数

标签 统计

dataframe ×1

if-statement ×1

lambda ×1

pandas ×1

python ×1