我有从传感器收集的数据,看起来像:
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
我想每两秒钟计算一列的平均值,标准偏差和其他一些统计信息,例如最大值,最小值.
因此(1001,1002)的平均值= 0.167,(1003,1004)的平均值= 0.17
从教程http://earthpy.org/pandas-basics.html中,我认为我应该将其转换为时间序列,并使用熊猫中的_means滚动,但是我对时间序列数据不熟悉,因此我不确定这是否正确.
另外,我如何在此处指定转换频率,因为第一秒的观测值较少.因此,对于实际数据,我在1001秒钟内的读数少于100,然后在1002秒钟以后的100观测值.
我也可以在几秒钟内进行简单的分组,但是它将每秒而不是每2秒对读数分组一次,那么我该如何组合来自groupby的连续2组的观察值,然后进行分析.
解决方法:
我认为您可以先将sec to_timedelta
、set_index
和resample
列转换为2秒(2S):
df['sec'] = pd.to_timedelta(df.sec, unit='s')
df.set_index('sec', inplace=True)
print (df)
nanosec value
sec
00:16:41 1 0.2
00:16:41 2 0.2
00:16:41 3 0.2
00:16:42 1 0.1
00:16:42 2 0.2
00:16:42 3 0.1
00:16:43 1 0.2
00:16:43 2 0.2
00:16:43 3 0.1
00:16:44 1 0.2
00:16:44 2 0.2
00:16:44 3 0.2
00:16:44 4 0.1
print (df.value.resample('2S').mean())
sec
00:16:41 0.166667
00:16:43 0.171429
00:16:45 NaN
Freq: 2S, Name: value, dtype: float64
print (df.value.resample('2S').std())
sec
00:16:41 0.051640
00:16:43 0.048795
00:16:45 NaN
Freq: 2S, Name: value, dtype: float64
print (df.value.resample('2S').max())
sec
00:16:41 0.2
00:16:43 0.2
00:16:45 NaN
Freq: 2S, Name: value, dtype: float64
也许您需要在重采样中更改基础:
print (df.value.resample('2S', base=1).mean())
sec
00:16:42 0.166667
00:16:44 0.171429
00:16:46 NaN
Freq: 2S, Name: value, dtype: float64
print (df.value.resample('2S', base=1).std())
sec
00:16:42 0.051640
00:16:44 0.048795
00:16:46 NaN
Freq: 2S, Name: value, dtype: float64
print (df.value.resample('2S', base=1).max())
sec
00:16:42 0.2
00:16:44 0.2
00:16:46 NaN
Freq: 2S, Name: value, dtype: float64
print (df.value.resample('2S', base=2).mean())
sec
00:16:43 0.166667
00:16:45 0.171429
00:16:47 NaN
Freq: 2S, Name: value, dtype: float64
print (df.value.resample('2S', base=2).std())
sec
00:16:43 0.051640
00:16:45 0.048795
00:16:47 NaN
Freq: 2S, Name: value, dtype: float64
print (df.value.resample('2S', base=2).max())
sec
00:16:43 0.2
00:16:45 0.2
00:16:47 NaN
Freq: 2S, Name: value, dtype: float64
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。