我有一個看起來像這樣但更長的df:
df = pd.DataFrame({
'Time' : [1,2,7,10,15,16,77,98,999,1000,1121,1245,1373,1490,1555],
'ID' : ['1', '1', '1', '1', '1', '2', '2', '2', '2', '2', '3', '3', '3', '3', '3'],
'Act' : ['1', '2', '4', '1', '2', '0', '2', '4', '3', '1', '4', '0', '3', '1', '2']})
Act 值的范圍為 0-4。我想找到 4 之后的第一個零,然后為該零取“時間”列值。如果連續有兩個 4,然后只有一個零,我只對最接近零的 4 感興趣。
對于上面的示例,我想要值:16 和 1245 并將它們附加到向量中。
謝謝!
uj5u.com熱心網友回復:
您可以從 4 開始組成組并獲得每個組的前 0:
# make groups starting with a 4
group = df['Act'].eq('4').cumsum()
# identify rows with a 0
m = df['Act'].eq('0')
# get first 0 of each group
df.loc[m, 'Time'].groupby(group).first()
輸出:
Act
1 16
3 1245
Name: Time, dtype: int64
作為向量:
a = df.loc[m, 'Time'].groupby(group).first().to_numpy()
輸出:array([ 16, 1245])
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480950.html
上一篇:DLookUp函式不匹配
