【发布时间】:2021-03-26 04:49:11
【问题描述】:
我正在尝试在名为 own_house_age 的列中估算缺失值。
请原谅我看不到这个,但是这个语法有什么无效的?
own_house_impute = lambda x: (x['Own_House_Age'].replace(np.nan, value = 0)) if (x['House_Own'] == 0)
else (x['Own_House_Age'].replace(np.nan, value = np.median(df['Own_house_Age'])))
这是我得到的错误
File "<ipython-input-15-58ac93fedced>", line 1
own_house_impute = lambda x: (x['Own_House_Age'].replace(np.nan, value = 0)) if (x['House_Own'] == 0)
^
SyntaxError: invalid syntax
这就是两个相关列的样子
House_Own | Own_House_Age
---------------------------------
|
0.0 | NaN
0.0 | NaN
0.0 | Nan
1.0 | 4.0
1.0 | Nan
【问题讨论】:
-
括号应该围绕整个 if-else 和/或 lambda 函数
-
@Vishnudev 尝试这样做,但不起作用。
-
请在@Sachin 问题中提供一些示例数据作为输入和预期输出
-
试试这个
own_house_impute = (lambda x: x['Own_House_Age'].replace(np.nan, value = 0) if x['House_Own'] == 0 else x['Own_House_Age'].replace(np.nan, value = np.median(df['Own_house_Age']))) -
@Vishnudev 这可以消除无效的语法错误,但现在它说浮动对象不可下标。我还提供了示例数据供您参考。
标签: python-3.x pandas lambda