我有一个消息的数据帧,它们的发送者和时间。它看起来类似于:
Time Person Message
8:00 A '1'
8:01 B '2'
8:02 B '3'
8:05 A '4'
9:04 B '5'
我想计算一个人对另一个人的最后一条消息作出回复所花费的时间。即得到以下内容:
Time Person Message TimeDiff(in min)
8:00 A '1' 0
8:01 B '2' 1
8:02 B '3' 2
8:05 A '4' 3
9:04 B '5' 59
我如何达到这个目标?
编辑:请注意,这与Time col中的最后一个元素不是简单的差异,因为它取决于Person列。参见示例。
您可以使用日期时间序列来计算差异。
首先使用pd.to_datetime获得意甲:
date_time_serie=pd.to_datetime(df['Time'] ,format = '%H:%M')
df['TimeDiff(in min)']=date_time_serie.diff().fillna(pd.Timedelta(0)).dt.seconds/60
df['TimeDiff(in min)']=df['TimeDiff(in min)'].astype(int)
print(df)
Time Person Message TimeDiff(in min)
0 8:00 A '1' 0
1 8:01 B '2' 1
2 8:02 B '3' 1
3 8:05 A '4' 3
4 9:04 B '5' 59