У меня есть серия x
со значениями y
и z
.Я хотел бы получить коллекцию сегментов x
, в течение которых y
больше 0.5
.По этому сегменту я хотел бы вычислить две статистики: длину сегмента в единицах x
и среднее значение z
по сегменту.Я хочу отбросить все данные, для которых y
равно 0,5 или менее.Какой самый элегантный способ сделать это с пандами?
import numpy as np
import pandas as pd
x = np.arange(0, 100, 0.1)
y = np.sin(x) + 0.5*np.sin(0.5*x)
z = np.random.rand(x.size)
df = pd.DataFrame(data=np.stack((x,y), axis=-1), index=x, columns=['y','z'])
# Fetch all x segments for which y is larger than 0.5. Discard others.
# Calculate segment length in units of x.
# Compute mean of z per segment.