以下是我在DataFrame中的数据片段。
Date Energy F1 F2 F3 F4 F5 F6 F7 F8
2013-01-01 00:00:00 0.181 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 00:30:00 0.248 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 01:00:00 0.206 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 01:30:00 0.171 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 02:00:00 0.068 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 02:30:00 0.083 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 03:00:00 0.083 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 03:30:00 0.072 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 04:00:00 0.06 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 04:30:00 0.061 7.0 5.0 0.87 1000.0 10.0 4.0 13.0 3.0
2013-01-01 05:00:00 0.06 7.0 5.0 0.87 1001.0 10.0 4.0 16.7 4.0
2013-01-01 05:30:00 0.068 6.0 3.0 0.81 1002.0 10.0 4.0 22.2 2.0
2013-01-01 06:00:00 0.076 6.0 3.0 0.81 1002.0 10.0 4.0 22.2 2.0
2013-01-01 06:30:00 0.044 5.0 2.0 0.81 1002.0 10.0 4.0 13.0 1.0
2013-01-01 07:00:00 0.063 5.0 2.0 0.81 1003.0 10.0 4.0 13.0 1.0
2013-01-01 07:30:00 0.063 5.0 2.0 0.81 1003.0 10.0 4.0 16.7 1.0
我想计算能量列的样本标准偏差,使得每4个值(4个值的窗口)具有一个样本标准。
我尝试使用pd.rolling()。std()
df['Smaple Std'] = df['Energy'].rolling(4).std()
但这样做基本上是从一行移动到下一行,并将接下来的4行分组为一个窗口。为每行提供一个新的Sample Std值。
我正在寻找的是每4行一个Sample Std值,窗口移动到接下来的4行。此窗口的大小会发生变化[4,8,6,6],这会重复
我想知道我是否可以使用groupby()但是由于我的数据,df非常大,因此计算成本很高。
任何简单的pythonic方法都可以做到这一点?