我正试图在如下的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']]