标签: python pandas dataframe
我有一个格式为熊猫的数据框
我的目标是获取满足条件的连续行组的值的所有差异,即在此示例中,我想要一个列表 [13 - 12, 17 - 15]。大熊猫有没有一种有效的方法来做到这一点?
[13 - 12, 17 - 15]
答案 0 :(得分:3)
您可以在condition列上取cumsum来确定满足条件的行的blocks,然后在这些{{1}列上group列value }} 和 blocks 使用 numpy.ptp:
condition
cumsum
blocks
group
value
numpy.ptp
agg
详情:
m = df['condition'] blocks = (~m).cumsum()[m] lst = list(df['value'].groupby(blocks).agg(np.ptp))