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