Disons que je l'dataframe suivante:Comment calculer le temps entre l'apparition d'un événement dans une trame de données de série chronologique
df
A B C D event
Timestamp
1991-04-21 09:09:00 9.0 13.0 NaN NaN 100.0
1991-04-21 17:08:00 7.0 NaN NaN NaN 119.0
1991-04-21 22:51:00 NaN NaN 123.0 NaN NaN
1991-04-22 07:35:00 10.0 13.0 NaN NaN 216.0
1991-04-22 13:40:00 2.0 NaN NaN NaN NaN
1991-04-22 16:56:00 7.0 NaN NaN NaN 211.0
utilisant le code
df['delta_time'] = (df['event']-df['event'].shift()).fillna(0)
Je reçois
Timestamp A B C D event delta_time
1991-04-21 09:09:00 9.0 13.0 NaN NaN 100.0 00:00:00
1991-04-21 17:08:00 7.0 NaN NaN NaN 119.0 07:59:00
1991-04-21 22:51:00 NaN NaN 123.0 NaN NaN 05:43:00
1991-04-22 07:35:00 10.0 13.0 NaN NaN 216.0 08:44:00
1991-04-22 13:40:00 2.0 NaN NaN NaN NaN 06:05:00
1991-04-22 16:56:00 7.0 NaN NaN NaN 211.0 03:16:00
1991-04-23 07:25:00 11.0 13.0 NaN NaN 257.0 14:29:00
mais ce que je cherche est
Timestamp
1991-04-21 09:09:00 9.0 13.0 NaN NaN 100.0 00:00:00
1991-04-21 17:08:00 7.0 NaN NaN NaN 119.0 07:59:00
1991-04-21 22:51:00 NaN NaN 123.0 NaN NaN NaN
1991-04-22 07:35:00 10.0 13.0 NaN NaN 216.0 13:42:00
1991-04-22 13:40:00 2.0 NaN NaN NaN NaN NaN
1991-04-22 16:56:00 7.0 NaN NaN NaN 211.0 09:21:00
1991-04-23 07:25:00 11.0 13.0 NaN NaN 257.0 14:29:00
Je veux calculer le temps qui s'est écoulé chaque fois qu'un événement se produit et omettre les moments où l'événement était un NaN. Alors, quelle serait la bonne approche pour écrire ce code.
cette ligne 'df [ 'delta_time '] = (df [' event '] - df [' event ']. shift()). fillna (0) 'ne correspond pas à votre sortie ou votre intention, car cela soustrait la colonne d'événement qui est numérique – EdChum