我有从传感器收集的数据,看起来像:
sec nanosec value
1001 1 0.2
1001 2 0.2
1001 3 0.2
1002 1 0.1
1002 2 0.2
1002 3 0.1
1003 1 0.2
1003 2 0.2
1003 3 0.1
1004 1 0.2
1004 2 0.2
1004 3 0.2
1004 4 0.1
我想计算average,std deviation
和其他一些统计数据,例如每2秒计算一列的最大值和最小值。因此,(1001,1002)的平均值= 0.167,(1003,1004)的平均值=0.17
从教程http://earthpy.org/pandas-basics.html中,我认为我应该将其转换为时间序列,并使用pandas中的rolling _means,但是我对时间序列数据不熟悉,所以我不确定这是否是正确的方法。2还有,我如何在这里指定频率进行转换,因为第一秒的观测值较少。因此,对于实际数据,我在1001秒内有不到100个读数,然后在1002秒内有100个观测值。
我也可以在秒上做一个简单的groupby,但它会每秒分组读数,而不是每2秒,那么我怎么能从groupby中合并2个连续组的观察结果,然后进行分析。
2条答案
按热度按时间lztngnrs1#
我想你可以先用
2 seconds
(2S
)转换列sec
to_timedelta
,set_index
和resample
:也许你需要在
resample
中更改base
:g9icjywg2#
借用jezrael的代码来设置:
使用
pd.TimeGrouper('2S')
和describe()