我有一个有两列的df。一个是以微秒为单位的时间戳,另一个是值。看起来是这样的:
time score
83620 4
83621 4
83622 4
83623 4
83624 4
83625 4
83626 4
83627 4
83628 4
83629 4
83630 4
83631 4
83632 4
83633 5
83634 5
83635 5
83636 5
83637 5
83638 5
83639 6
83640 1
83641 1
83642 4
我想将df.time调整为毫秒,并按模式聚合df.score。应该是这样的:
time score
8362 4
8363 5
8364 1
首先,转换时间列,使其包含毫秒。1微秒包含0.001毫秒。因此,此代码将时间列转换为毫秒:
然后,按所需列分组,在本例中为score,然后指定按模式聚合时间列。这可以使用以下代码完成:
两种方法:
使用重采样,但我今天才了解它,到目前为止还没有尝试过,但它看起来很强大。 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.resample.html
我最喜欢的方法是:
如果时间紧迫,请考虑用Apple()或列表理解进行毫秒计算。如果使用apply,请记住lambda函数有开销。 对于非常大的样本,numpy可能会稍微快一点。 重采样可能比分组快,但这很容易
尝试:
输出:
相关问题 更多 >
编程相关推荐