我需要计算开始和停止之间的经过时间,下面有示例数据
{x: y for x , y in newdf.groupby(s)}# using group by create the dict
Out[17]:
{'D': A B C D E F G
2 1 def 2 NaN 600 6600 44, 'EFG': A B C D E F G
0 1 (null) 3 4 NaN NaN NaN
1 1 abc 6 7 NaN NaN NaN
3 1 ghi 33 44 NaN NaN NaN}
d={x: y for x , y in newdf.groupby(s)}
d['D'].dropna(1,thresh=1)
# result can using dict selection
# dropna here means atleast one column should have at least one not null value ,
# if it is all null , then we drop the entire columns
Out[19]:
A B C E F G
2 1 def 2 600 6600 44
d['EFG'].dropna(1,thresh=1)
Out[21]:
A B C D
0 1 (null) 3 4
1 1 abc 6 7
3 1 ghi 33 44
对于每个ID(例如,这里只有一个),我需要计算从X行的停止到X + 1行的开始之间的时间。第1行的EG,答案为NA b / c我没有停止时间可以比较。对于第2行,第1行中的停止时间(13:10)与第2行中的开始时间(13:55)之间的差为45分钟。
下面还有另一个示例数据集,其中有我需要的最后一列,我不确定如何在R中进行计算。
在rowX中查看开始时间,在rowX-1中查看停止时间,计算差异,然后将其放入rowX的列中。
local