我有一个系列x
,值分别为y
和z
。我想获得x
大于y
的{{1}}段的集合。在此段上,我想计算两个统计量:段的长度,以0.5
为单位,以及段上的x
的平均值。我想丢弃z
为0.5或更小的所有数据。用大熊猫最优雅的方式是什么?
y
答案 0 :(得分:1)
选择值:
df = df[df['y'] > 0.5]
发现新细分:
df['is_new_segment'] = df.reset_index()['index'].diff() > 0.15
数字段:
df['segment'] = df['is_new_segment'].cumsum()
按段分组并应用您的功能(例如,在这里mean
)
df.groupby('segment')['z'].mean()