我想计算样本的均值和标准差。示例是两列,第一列是时间,第二列,用空格分隔是值。我不知道如何使用 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/