我编写了一个脚本来解析csv文件。 csv文件包含ID和时间戳。
df = pd.read_csv(dataset_path, names = ['ID','TSTAMP','DIFF'], delimiter=';')
d = {'min':'TSTAMP-INIT','max':'TSTAMP-FIN'}
df = df.groupby(['UID'])['TSTAMP'].agg([min, max]).reset_index().rename(columns=d)
df['DIFF'] = (df['TSTAMP-FIN'] - df['TSTAMP-INIT'])
如果您将此视为csv文件(点表示系列中的其他元素)
3w]{;1495714405280
...
3w]{;1495714405340
...
3w]{;1495714571213
...
3w]{;1495714571317
...
3w]{;1495714405280
...
3w]{;1495714405340
...
3w]{;1495714571213
...
3w]{;1495714571317
df给出输出作为3w]{
UID DIFF
0 3w]{ 166037
相反,当我希望输出是连续ID的差异时。
UID DIFF
0 3w]{ 60
1 3w]{ 104
...
我错过了什么?
答案 0 :(得分:0)
在UID列上,您正在聚合时间戳,然后获取该uid的最小值和最大值,然后获取差值。但是对于你的要求,选择两列,然后对它们进行排名,并使用uid和rank = rank-1对它进行自我连接。或者您可以应用Rolling()pandas方法。