不使用 apply(因为数据框太大),如何获得特定列的先前非 NaN 值以在计算中使用?
例如,这个数据框:
df = pd.DataFrame([['A',1,100],['B',2,None],['C',3,None],['D',4,182],['E',5,None]], columns=['A','B','C'])
A B C
0 A 1 100.0
1 B 2 NaN
2 C 3 NaN
3 D 4 182.0
4 E 5 NaN
我需要计算第 3 行的“C”列与第 0 行的差值。
值之间的 NaN 值的数量是可变的,那么 .shift()
可能在这里不适用(我认为)
我需要一些像:df['D'] = df.C - df.C[previous_not_nan]
(第 3 行将是 82。