从一组选定的行中获取NaN值的索引

use*_*057 3 python-3.x pandas

我有一个这样的数据框,

    ID   Cus_ID cl_id
0   5.0  200    0
1   NaN  200    0
2   NaN  200    1
3   14.0 200    2
4   15.0 200    2
5   16.0 200    2
6   NaN  200    3
Run Code Online (Sandbox Code Playgroud)

从上面的数据框中,我想提取第0至4行,并检查“ ID”列中是否有任何NaN值。我试过了

rows_needed = [0,1,2,3,4]

df.iloc[rows_needed,0].isnull().index.tolist()
Run Code Online (Sandbox Code Playgroud)

但是我得到以下内容

[0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

我期望得到的索引[1,2]。如何获得所需的输出?

当我这样做时

df.iloc[rows_needed,0].isnull()
Run Code Online (Sandbox Code Playgroud)

我明白了

0    False
1     True
2     True
3    False
4    False
Name: ID, dtype: bool
Run Code Online (Sandbox Code Playgroud)

不知道我在哪里犯了错误,没有得到我的输出。

Dat*_*ice 6

您非常非常接近,您需要做的是连锁经营.iloc.loc==TRUE取得成果

your_indices = (df.iloc[rows_needed]
                .loc[df.ID.isnull()==True]
                .index.tolist())

print(your_indices)
[1, 2]
Run Code Online (Sandbox Code Playgroud)