1

我正在尝试在 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]

感谢您的见解!

4

1 回答 1

1

过滤 中的值所在的行Column_2NaN然后groupby在连续出现的NaN值中的这些行Column_2并收集列表推导中的相应值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']]
于 2020-09-19T12:23:38.173 回答