熊猫:为另一列是否为空白创建一个新列

时间:2019-05-15 16:55:36

标签: python pandas

我正在尝试在日期框架中创建新列,以显示其余列的空白或不空白。我认为这应该很简单,但是我很难使代码正确无误...

for column, row in df.iterrows():
if(pd.isnull(row[column])):
    df[column + 'Blank or Not'] = "blank"
else:
    df[column + 'Blank or Not'] = "not blank"

这是错误:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

当我将其更改为以下内容时:

for column, row in df.iterrows():
    if(pd.isnull(row[column])):
        df[str(column) + 'Blank or Not'] = "blank"
    else:
        df[str(column) + 'Blank or Not'] = "not blank"

这是错误:

 IndexError: index out of bounds

1 个答案:

答案 0 :(得分:0)

我怀疑列名是int,所以使用:

if(pd.isnull(row[column])):
    df[str(column) + 'Blank or Not'] = "blank"
else:
    df[str(column) + 'Blank or Not'] = "not blank"

或者在python 3中,您可以使用f字符串:

f"{column}Blank or Not"

编辑:我想您想做些不同的事情:

In [21]: df
Out[21]:
    0  1
0 NaN  1

In [22]: df.isnull().applymap({True: 'Blank', False: 'Not Blank'}.get)
Out[22]:
       0          1
0  Blank  Not Blank