python pandas-聚合并保留其他列

时间:2018-10-21 14:36:55

标签: python pandas aggregate

我正在尝试将我的csv数据集按照变量time_start和time_end与熊猫进行分组,具体取决于交互之间的时间(在这种情况下,大于20秒)。

但是,当我应用groupby并进行汇总时,我的结果是一个只有变量time_start,time_end和total_time的数据框。现在我不知道哪个tag_me或tag_them具有这些连接。我在这里做什么错了?

原始数据集:

tag_me,tag_them,time_remote_s,rssi,angle,group,time_start,time_end,total_time
0x597E5627,0x3C992634,932,-94,14,1,1356,1363,7
0x597E5627,0x7DA8FFB0,167,-87,13,1,1364,1364,0
0x597E5627,0x3C992634,941,-84,7,1,1365,1366,1
0x597E5627,0x7DA8FFB0,169,-90,4,1,1366,1366,0
0x597E5627,0x36570942,906,-94,4,1,1366,1366,0
0x597E5627,0x3C3A21AD,728,-90,8,1,1369,1369,0
0x597E5627,0x06497CA4,155,-87,7,1,1370,1374,4
0x597E5627,0x064F5882,313,-83,6,1,1379,1379,0
0x597E5627,0x06497CA4,166,-94,10,1,1381,1381,0
0x597E5627,0x064F5882,316,-94,8,1,1381,1382,1
0x597E5627,0x36570942,923,-94,7,1,1383,1390,7

查看每行开始和结束时间的我的算法:

df = df.groupby(((df.time_start  - df.time_end.shift(1)) < 20).cumsum()).agg({'time_start':min, 'time_end':max, 'total_time':sum})

我的结果:

time_start, time_end, total_time
0, 1356, 1404, 22
1, 1427, 1427, 0
2, 1463, 1463, 0
3, 1502, 1727, 115
4, 1755, 2506, 737
5, 2540, 2596, 17
6, 2628, 2681, 33

我丢失了有关tag_me和tag_them名称的所有信息。我想要的结果仍然包含所有其他列。我想合并tag_me和tag_them的每一行,它们都是相同的ID,并且彼此之间的间隔为20秒。

我在做什么错?

0 个答案:

没有答案