id timestamp value1 value2
0 A 2000-01-01 0:00:49.345 0 14319414583119773928
1 A 2000-01-01 0:00:49.353 3 0
2 A 2000-01-01 0:00:50.346 0 14319414565939874728
3 A 2000-01-01 0:00:50.354 3 0
...
例如
id timestamp value1 value2
0 A 2000-01-01 0:00:49.349 3 14319414583119773928
1 A 2000-01-01 0:00:50.350 3 14319414565939874728
我尝试分组,但是这会创建一些空的存储桶,这是不可取的。这些时间戳值是如此接近,我只想能够将它们视为相同。可以加入时间戳,也可以使用两者之间的中点
答案 0 :(得分:1)
使用Grouper
df.value2=df.value2.astype(str)# why I change to str , cause the int is too big , when calculated panda push it to negative
df.groupby([df.id,pd.Grouper(key='timestamp',freq='1s')]).max()
Out[326]:
id value1 value2
id timestamp
A 2000-01-01 00:00:49 A 3 14319414583119773928
2000-01-01 00:00:50 A 3 14319414565939874728