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

jsw*_*ler 2 python python-3.x

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

为此,我尝试创建第二组二进制列,当列中的观察值为空时为 1,否则为 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
Run Code Online (Sandbox Code Playgroud)

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

tz=getattr(series.dtype, 'tz', None))
Run Code Online (Sandbox Code Playgroud)

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

Fab*_*ing 5

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

for col in test.columns:
    test[col+"_missing"] = test[col].isnull()
Run Code Online (Sandbox Code Playgroud)