Python 时间序列的标准差
我想计算样本的平均值和标准偏差。示例有两列,第一列是时间,第二列是值,用空格分隔。我不知道如何使用python计算第二列数值的平均值和标准偏差,也许是scipy?我想对大型数据集使用该方法。 我还想检查一个集合的哪个数是标准差的七倍。 谢谢你的帮助Python 时间序列的标准差,python,numpy,matplotlib,scipy,Python,Numpy,Matplotlib,Scipy,我想计算样本的平均值和标准偏差。示例有两列,第一列是时间,第二列是值,用空格分隔。我不知道如何使用python计算第二列数值的平均值和标准偏差,也许是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,以下应能起作用
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
然后,要分别获得值
列的标准偏差和平均值,运行以下操作,您将获得输出:
>>> df['value'].std()
2.368966019173766e-06
>>> df['value'].mean()
1.418e-05
要回答第二个问题,请尝试以下方法:
std = df['value'].std()
df = df[(df.value > 7*std)]
>>> df
time value
4 5 0.000018
std = df['value'].std(ddof=0)
df = df[(df.value > 7*std)]
我假设您希望获得值
大于样本标准偏差7倍的行。如果您想要大于或等于,只需将
更改为>=
。然后,您应该能够获得以下信息:
std = df['value'].std()
df = df[(df.value > 7*std)]
>>> df
time value
4 5 0.000018
std = df['value'].std(ddof=0)
df = df[(df.value > 7*std)]
此外,按照@Mad Physicator的建议,添加δ自由度ddof=0
(如果您不熟悉,请检查),这样做会导致以下结果:
std = df['value'].std()
df = df[(df.value > 7*std)]
>>> df
time value
4 5 0.000018
std = df['value'].std(ddof=0)
df = df[(df.value > 7*std)]
输出:
>>> df
time value
3 4 0.000015
4 5 0.000018
另外,如果我没有错的话,这里的惯例是一篇文章只回答一个问题,而不是两个问题。我想你可能希望标准偏差中的ddof=0computation@MadPhysicist嗯,你说得有道理。我将在上面添加您的建议:)