Comment puis-je trouver le premier élément d'une des sessions (pour chaque groupe) qui démarre une nouvelle série de valeurs continues ?
import pandas as pd
df = pd.DataFrame({'group':[1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,], 'value':[
1,2,3,4,5,10,11, 15, 16,17,18,19,20, # 13
21, 22,23,24,26,27.28,
4,5,6, 8,9,10,11,12, 13,14
]})
display(df)
jusqu'à présent, je suis coincé ici :
df['shifted_value'] = df['value'].shift(-1)
df['difference_nect'] = df['shifted_value'] - df['value']
# this is obviously not yet correct - how can I get the first element (elemnt of 0 for each of the starting sessions)
df['session_element_index'] = df.groupby(['group']).cumcount()
df.head()
En SQL, j'utiliserais une fonction fenêtre et je comparerais les éléments précédents/suivants pour déterminer si une session commence/se termine. Existe-t-il une manière plus agréable et plus native de pandas de faire cela de manière vectorielle ?