我有一些加速度计读数的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
我使用pandas加载它们
import pandas as pd
accDF=pd.read_csv(accFileName,header=0, sep=',')
accDF.columns=['time','x','y','z']
accDF=accDF.set_index(['time'])
加速度计数据不是均匀采样的,我想按照每10、20或30秒分组数据,并对数据组应用自定义函数。
如果数据是均匀采样的,那么应用滚动函数就很容易。但由于数据不是这样的,我想使用时间戳间隔来应用分组功能。使用1秒的间隔很容易实现:
accDF_win=accDF.groupby(accDF.index.second).apply... etc
然而,我无法想出如何按任意秒数分组,然后对其应用函数。
使用TimeGrouper,我可以执行以下操作:
accDF_win=accDF.groupby(pd.TimeGrouper(freq='3Min'))
需要对任意数量的分钟进行操作,但是TimeGrouper似乎没有“秒”分辨率。
提前感谢您的帮助。
TimeGrouper
已被弃用,建议使用带有参数freq
的Grouper
。 - normanius