我有一些加速度计读数的csv数据,格式如下(不完全是这样,实际数据的采样率更高):
2013-09-28 17:36:50.322120, 0.152695, -0.545074, -0.852997 2013-09-28 17:36:50.622988, 0.141800, -0.554947, -0.867935 2013-09-28 17:36:51.923802, 0.132431, -0.547089, -0.879333 2013-09-28 17:36:52.124641, 0.124329, -0.530243, -0.887741 2013-09-28 17:36:52.425341, 0.122269, -0.519669, -0.900269 2013-09-28 17:36:52.926202, 0.122879, -0.502151, -0.902023 .... .... .... .... 2013-09-28 17:49:14.440343, 0.005447, -0.623016, -0.773529 2013-09-28 17:49:14.557806, 0.009048, -0.623093, -0.790909 2013-09-28 17:49:14.758442, 0.007217, -0.617386, -0.815796
我用熊猫装的
^{pr2}$加速计数据不是均匀采样的,我想每隔10秒、20秒或30秒对数据进行分组,并对数据组应用自定义函数。在
如果数据是均匀采样的,应用滚动函数就很容易了。 但是,由于不是这样,我想使用时间戳间隔应用groupby。 以一秒钟的间隔执行此操作很容易:
accDF_win=accDF.groupby(accDF.index.second).apply... etc
但是,我不知道如何按任意秒数分组,然后对其应用函数。
使用TimeGrouper,我可以执行以下操作:
accDF_win=accDF.groupby(pd.TimeGrouper(freq='3Min'))
对于任意的分钟数,但似乎TimeGrouper没有“秒”分辨率。在
提前谢谢你的帮助
首先,您必须将datetime列转换为python datetime对象(如果没有的话)。在
然后使用
^{pr2}$pd.TimeGrouper
,如下所示:或者看看重采样函数here。也许您可以应用一个自定义的重采样函数,而不是使用groupby方法。在
如果没有任何函数,它将填充NaN:
我觉得你不需要时间点器。支持秒重采样。你要在几秒钟内尝试'S'(所以也许熊猫应该支持它?);正确的字符串是's'。在
编辑:实际上,在我的版本(即将发布的0.13)中,我发现“10S”也可以工作。也许你的问题不在于分析日期。在
相关问题 更多 >
编程相关推荐