1 回答

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
IIUC 這里有一個(gè)NumPy基于方法。這個(gè)想法是構(gòu)建一個(gè)上三角矩陣,每行中都有輸入數(shù)組的移位版本。通過(guò)獲取這些的累積和,并與數(shù)據(jù)幀的第二列進(jìn)行比較,我們可以使用argmax第一個(gè)索引找到累積序列中的值大于相應(yīng)索引中的第三數(shù)據(jù)幀列:
a = df.to_numpy()
cs = np.triu(a[:,1]).cumsum(1)
ix = (cs >= a[:,2,None]).argmax(1)
# array([2, 3, 3, 4, 6, 7, 7, 0], dtype=int64)
df['first_ix'] = a[ix,1,None]
print(df)
index part_1 part_2 first_ix
0 0 4 11 6
1 1 5 12 4
2 2 6 10 4
3 3 4 12 8
4 4 8 14 6
5 5 4 13 8
6 6 6 11 8
7 7 8 10 4
添加回答
舉報(bào)