从原始列创建标志列集,在缺少值时创建“1”

时间:2017-11-02 16:50:31

标签: python python-3.x

道歉,如果这是一个简单的问题,我正在尝试自己技术python。我有一个熊猫数据框,其中包含大量缺少值的列。我将为建模部分估算这些值,但我也想看看它们缺失的事实是否重要。

要做到这一点,我试图创建第二组二进制列,当列中的观察为空时为0,否则为0。我的代码如下:

test=train_17
col_names=test.columns.tolist()
for col in col_names:
    for row in test[col]:
        if test[col][row].isnull():
            test[col+"_missing"] = 1
        else:
            test[col+"_missing"] = 0

当我尝试这样做时,我得到一个kKeyError:14297519。在日志中我也看到了:

tz=getattr(series.dtype, 'tz', None))

有人对我做错了什么有任何想法或建议吗?

1 个答案:

答案 0 :(得分:2)

函数isnull适用于整个pandas.Dataframe或pandas.Series,因此您可以将新列分配给test[col].isnull()

for col in test.columns:
    test[col+"_missing"] = test[col].isnull()