python - 时间序列的标准偏差

标签 python numpy matplotlib scipy

我想计算样本的均值和标准差。示例是两列,第一列是时间,第二列,用空格分隔是值。我不知道如何使用 python 计算第二列 vales 的均值和标准差,也许是 scipy?我想将该方法用于大量数据。 我还想检查一组数是标准差的七倍。 感谢您的帮助。

time value
 1 1.17e-5
 2 1.27e-5
 3 1.35e-5
 4 1.53e-5
 5 1.77e-5

平均值为 1.418e-5,标准差为 2.369-6

最佳答案

要回答您的第一个问题,假设您的样本的数据帧是 df,以下应该有效:

import pandas as pd

df = pd.DataFrame({'time':[1,2,3,4,5], 'value':[1.17e-5,1.27e-5,1.35e-5,1.53e-5,1.77e-5]}

df 将是这样的:

>>> df
   time     value
0     1  0.000012
1     2  0.000013
2     3  0.000013
3     4  0.000015
4     5  0.000018

然后分别获取value列的标准差和均值,运行以下命令,您将得到输出:

>>> df['value'].std()
2.368966019173766e-06

>>> df['value'].mean()
1.418e-05

要回答您的第二个问题,请尝试以下操作:

std = df['value'].std()
df = df[(df.value > 7*std)]

我假设您想要获取 value 大于样本标准差 7 倍的行。如果您确实想要大于或等于,只需将 > 更改为 >=。然后您应该能够获得以下内容:

>>> df
   time     value
4     5  0.000018

此外,按照@Mad Physicist 关于添加自由度增量 ddof=0 的建议(如果您对此不熟悉,请查看 Delta Degrees of Freedom Wiki ),这样做会产生以下结果:

std = df['value'].std(ddof=0)
df = df[(df.value > 7*std)]

输出:

>>> df
   time     value
3     4  0.000015
4     5  0.000018

附言如果我没记错的话,这里的惯例是在一个帖子中坚持一个问题,而不是两个。

关于python - 时间序列的标准偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58253445/

相关文章:

python - 如何将一个小的 numpy 数组 "embed"变成一个大的 numpy 数组的预定义 block ?

python - 使用 zip 或数组对列表进行操作

python - 使用带有secondary_y的Seaborn + Pandas绘图时如何摆脱网格线

python - 使用matplotlib创建雷达图时,有没有办法删除雷达图上的圆圈 'labels'?

python - 如何摆脱 Pandas/Matplotlib 条形图 x 轴上的虚线?

python - 如何编辑交叉表的输出以显示精确到小数点后第二位的百分比?

python - 在Stata中高效处理矩阵

python - Github,为什么我的Python代码有^M并且没有新行?

Python - 格式化以便打印文本时它从右侧而不是左侧出现

来自 CSV 数据的 Python 饼图