我有一个数据框:

Out[8]:
   0    1    2
0  0    1.0  2.0
1  NaN  NaN  NaN
2  0    0.0  NaN
3  0    1.0  2.0
4  0    1.0  2.0

我想添加一个新的布尔列“abc”,如果该行包含所有NaN,则“abc”为“true”,否则“abc”为“false”,例如:
   0    1    2      abc
0  0    1.0  2.0    false
1  NaN  NaN  NaN    true
2  0    0.0  NaN    false
3  0    1.0  2.0    false
4  0    1.0  2.0    false

这是我检查这一排的代码
def check_null(df):
        return df.isnull().all(axis=1)

它返回了我想要的一部分:
check_null(df)
Out[10]:
0    false
1    true
2    false
3    false
4    false
dtype: bool

所以,我的问题是,我如何才能在其中添加“abc”作为新的列?
我试过了
df['abc'] = df.apply(check_null, axis=0)

它显示:
ValueError:(“对象类型没有命名为1”,“发生在索引0”下)

最佳答案

isnaall一起使用

df.isna().all(axis = 1)
Out[121]:
0    False
1     True
2    False
3    False
4    False
dtype: bool

你不需要用它
def check_null(df):
    return df.isnull().all(axis=1)
check_null(df)
Out[123]:
0    False
1     True
2    False
3    False
4    False
dtype: bool

如果您确实需要apply它,您需要更改您的功能,请删除axis= 1
def check_null(df):
    return df.isnull().all()
df.apply(check_null,1)
Out[133]:
0    False
1     True
2    False
3    False
4    False
dtype: bool

关于python - 如果所有行均为NULL,如何添加新的 bool 列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55537637/

10-12 23:29