熊猫:压缩两个带时间戳的封闭行

时间:2018-10-26 00:45:45

标签: python pandas dataframe

       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
...
  • 格式在熊猫数据框中。
  • 我想在小于Xsec时使用timestamp字段压缩行,并使用max value1和value2。

例如

        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

我尝试分组,但是这会创建一些空的存储桶,这是不可取的。这些时间戳值是如此接近,我只想能够将它们视为相同。可以加入时间戳,也可以使用两者之间的中点

1 个答案:

答案 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