python计算平均值与方差_在python中使用时间序列数据计算均值,方差std偏差

我有从传感器收集的数据,看起来像:

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组的观察值,然后进行分析.

解决方法:

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

标签:pandas,time-series,python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值