Как рассчитать разницу для каждого начала и конца - Pandas Python - PullRequest
0 голосов
/ 12 марта 2020

Я хотел бы рассчитать разницу для каждого начала / конца в новом df, вот мой df:

 Flag                     Timestamp
begin   2019-10-21  07:48:26.740378
end     2019-10-21  07:48:28.449916
begin   2019-10-21  07:48:37.306045
end     2019-10-21  07:48:41.689466
begin   2019-10-21  07:57:59.223986
end     2019-10-21  07:58:00.774449

Так что мой новый df должен выглядеть так:

New_df
1.709538
4.383421
1.550463

Спасибо, что уделили время!

1 Ответ

7 голосов
/ 12 марта 2020

Идея состоит в том, чтобы создать DataFrame с двумя столбцами GroupBy.cumcount и Series.unstack, поэтому для окончательного DataFrame только вычитайте столбцы:

df['Timestamp'] = pd.to_datetime(df['Timestamp'])

df = df.set_index([df.groupby('Flag').cumcount(), 'Flag'])['Timestamp'].unstack()

New_df = df['end'].sub(df['begin']).dt.total_seconds()
print (New_df)
0    1.709538
1    4.383421
2    1.550463
dtype: float64
...