Чтобы ответить на ваш первый вопрос, предполагая, что датафрейм вашего образца равен 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
(если вы не знакомы с этим, проверьте дельта степеней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
PS Если я не ошибаюсь, здесь принято придерживаться одноговопрос в пост, а не в два.