Мой DataFrame содержит несколько временных рядов, я хочу отмечать, когда точка в каждом временном ряду выходит на одно стандартное отклонение выше среднего.
df = pd.DataFrame(np.random.rand(3, 10), index=['ts_A', 'ts_B','ts_C'])
std = df.std(axis=1)
mean = df.mean(axis=1)
И тогда я надеялся, что смогу сделать:
df.mask(df > (std + mean), 'True', inplace=True)
Который должен возвращать исходный DataFrame, где любое значение, которое на одно стандартное отклонение выше среднего значения для этого ряда / временного ряда заменяется на True.
Однако вместо этого возвращается falseдля каждого элемента.Если я вместо этого использую df.where, весь DataFrame заполняется True.
Я мог бы сделать это, перебирая индекс и маскируя каждую строку по очереди, но я уверен, что должен быть лучший способ.