0

我想计算新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

感谢您的时间 !

4

1 回答 1

7

想法是通过GroupBy.cumcountand创建 2 列 DataFrame 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
于 2020-03-12T13:55:32.390 回答