我试图定义一个函数,该函数基于列“MSSubClass”的值替换“BsmtFinType1”中的值。但是,我希望它首先检查“要替换的值”是否为NaN。如果它有一个值,它不会替换它。我不太清楚为什么我的样品不起作用。运行它之后,没有任何值更新。如果我删除第一个'If'语句,它就可以运行并替换值。有什么想法吗?你知道吗
# Fill Basement Finishes
def fills_na(x):
if x['BsmtFinType1'] != np.NaN:
return x['BsmtFinType1']
elif x['MSSubClass'] < 60:
return 'Unf'
else:
return 'GLQ'
all_data['BsmtFinType1'] = all_data.apply(lambda x: bsmt_fin(x), axis=1)
好的,我打开了一个python交互环境,发现需要使用
~np.isnan(x['BsmtFinType1'])
而不是!=
。你知道吗这是因为DF表示NaN与np在默认情况下略有不同,因为它们是不同的类型。你知道吗
以及
我最终修改了函数并使其工作。我用嵌套的if而不是make!= np.NaN公司它自己的如果。你知道吗
相关问题 更多 >
编程相关推荐