查找列中的空值范围-Pandas



我正试图在如下的df中设置NaN值的范围:

[Column_1]     [Column_2]
1       A             10
2       B             20
3       C             NaN
4       D             NaN
5       E             NaN
6       F             60
7       G             65
8       H             NaN
9       I             NaN
10      J             NaN
11      K             90
12      L             NaN
13      M             100

所以,现在我所做的只是用这行列出NaN值的索引:

df['Column_2'].isnull()].index.tolist()

但是,我不知道如何根据Column_1设置这些值的间隔,在这种情况下,它将是:

[C-E] [H-J] [L]

感谢您的真知灼见!

过滤Column_2中的值为NaN的行,然后在Column_2中连续出现NaN值时过滤groupby这些行,并在列表理解中收集Column_1的相应值:

m = df['Column_2'].isna()
r = [[*g['Column_1']] for _, g in df[m].groupby((~m).cumsum())]

print(r)
[['C', 'D', 'E'], ['H', 'I', 'J'], ['L']]

最新更新