大家好,现在我有一个DataFrame,其中一列数据接近80000个。现在我需要计算其中每100个数据的标准差。请问这应该用什么句法实现呢?
每一百个数据计算标准差,没有条件?
先构造一个2列800行模拟数据集,列名分别为'A'和'B'。
>>> import numpy as np
>>> import pandas as pd
>>> data = np.random.random((800, 2))
>>> colnames = ['A', 'B']
>>> df = pd.DataFrame(data, columns=colnames)
>>> df
A B
0 0.873110 0.427585
1 0.579816 0.352475
2 0.346038 0.041847
3 0.757339 0.408963
4 0.579278 0.231502
.. ... ...
795 0.652869 0.796791
796 0.848916 0.253758
797 0.575989 0.076223
798 0.059614 0.305907
799 0.198827 0.613433
[800 rows x 2 columns]
对A列每100个为一组求标准差。如果A列长度不是100整数倍,则舍弃多余的数据。
>>> d = df['A'].values
>>> d = d[:(d.shape[0]//100)*100].reshape(-1, 100)
>>> np.std(d, axis=1)
array([0.26915131, 0.26924875, 0.30178678, 0.27558205, 0.30820353,
0.3226786 , 0.2955453 , 0.27770409])